Taki kwarc pożyczyłem kiedyś z taniego zegarka na rękę. http://obrazki.elektroda.pl/4345970000_1...
Może spłycę :) wypowiedzi przedmówców, ale w skrócie chodzi o to. 1. Wyświetlanie wszystkich 4-ech segmentów sterowanie jest tym samym portem, w tym przypadku P1 2. Tranzystory powodują po prostu dostarczenie napięcia do odpowiedniego segmentu. 3. Wysyłając jakiś sygnał na port P1, wysyłamy ten sam sygnał do wszystkich segmentów, a sterując odpowiedni...
Jak już to nie : Cyfra1kodu = A * 1000 Cyfra2kodu = B * 100 Cyfra3kodu = C * 10 Cyfra4kodu = D Code = Code + A Code = Code + B Code = Code + C Code = Code + D tylko: Cyfra1kodu = A * 1000 Cyfra2kodu = B * 100 Cyfra3kodu = C * 10 Cyfra4kodu = D Code = Code + Cyfra1kodu Code = Code + Cyfra2kodu Code = Code + Cyfra3kodu Code = Code + Cyfra4kodu
Timer w przerwaniu obsługuje wyświetlacz LED i inkrementuje zmienną byte, która w pętli głównej w instrukcji Case wybiera konkretne funkcjonalne fragmenty programu do wykonania, których wykonanie czasowo mieści się pomiędzy przerwaniami od timera. W przerwaniu od timera ustawia się także flaga przerwania, która uruchamia za pomocą If Then instrukcję...
W celu eliminacji drgań styków należy użyć przerwania licznika, by odczytywać stan przycisku tylko raz na około 10 ms . Nie używamy funkcji Debounce i delay_ms ! Czy przycisk został naciśnięty sprawdzamy w zmiennej globalnej dostępnej w programie głównym.
Wait nie stopuje programu. To nie całkiem prawda. Wait zatrzymuje główny program. Nie dotyczy to przerwań, które jak sama nazwa wskazuje przerywają działanie programu głównego, a więc i waita. Tak więc waity nie przeszkadzają przerwaniom, ale przerwania wydłużają czas waita. Przykład: Przerwanie o częstotliwości 400Hz w ciągu 100ms wykona się 40 razy....
Źle podchodzisz do problemu - zmienna i (czyli numer wyświetlanej cyfry) powinna być zmienną globalną, którą w przerwaniu od timera zwiększasz, a następnie wykonujesz blok switch (i) { ... }. Oczywiście delay w przerwaniu to "bluźnierstwo" :) Preskaler ustaw sobie na 64, wtedy przerwanie od timera dostniesz ok. 400x na sekundę, czyli odświeżanie całego...
Jestem w trakcie tworzenia programu do syntezy na SAA1057 ,do tego 4 wyświetlacze 7 segmentowe ,utknąłem w momencie gdy trzeba było przekonwertować liczbę całkowitą (bo w takiej przechowuję na częstotliwość) na poszczególne jej cyfry ,tak aby można było to wysłać do zmiennych obsługi multipleksu.
No i mam problem...zegar ładnie chodził w pająku ale podczas ustawiania czasu zwarłem przez przypadek reset do jakiś...9V a P0.2 do masy...i od tego czasu układ nie startuje...zegar się nie uruchamia, podczas próby odczytu sygnatury jest "Device not known (00,00,00)", nie reaguje na reset... Czy ubiłem procka...? Jest to AT89S52-24PU. Sprawdzone - spalony...
czyli jak w programie zmienie multipleks na timer 1 to bedzie działało?
Twoje przerwanie odbywa się co około 4ms..... a ty w tym przerwaniu ładujesz WAITMS 4 i to aż cztery razy !!!! co daje ci łącznie 16ms. Tak więc zaczyna się przerwanie - trwa jak kolega wyżej napisał KOSMICZNIE DŁUGO, ale ok potem się kończy, i niestety od razu procek wykonuje następne przerwanie i tak wokółko ;) ..... widzisz co się dzieje???? procek...
dziekuje juz do tego doszedlem o co chodzi z tym mux'em PROSZE o jakis schemat jak podlaczyc napiecie 0---15V i jakim poleceniem w BASCOM je odczytac plisssss
Wszystko zależy od inwencji twórczej. Teoretycznie da się i sterować 100 wierszy po kolei w multipleksie :D
...NIGDY nie robi się multipleksowania na tym samym Timerze , który jest wykorzystany do odmierzania czasu... ...Mega 8 na pewno ma dwa Timery, więc jeden na przerwania związane z czasem oczekiwania klawiszy, natomiast drugi do multipleksacji.... Hmmm... nie wiem czy dobrze zrozumiałem, ale jeśli się mylę to mnie popraw i wytłumacz dlaczego wszystko...
Zobacz sobie krótki opis [url=http://bart-projects.cba.pl/multipl... Zacznij krok po kroku i w 20 minut opanujesz temat. Co prawda tam akurat nie multipleksuję w przerwaniu chociaż tak to właśnie robię najczęściej. Spowodowane to było tym że akurat musiałem pogodzić multipleksowanie sześciu wyświetlaczy z odczytem 1Wire i czasem "naciągałem"...
Witam, od wczoraj zmagam się z problemem odbioru kodu RC5 w urządzeniu, w którym mam multipleks dużej ilości wyświetlaczy 7-segmentowych LED. Przerwania na multipleks przychodzą co około 4ms. Multipleksowanych cyfr jest łącznie 48, ale pogrupowane są one, tak jakby były tylko 4 cyfry. W każdym przerwaniu kody segmentów wysyłane są szeregowo na 3 rejestry...
Po zapoznaniu się z datasheet Atmegi 8 (str.186-188 oraz rejestrów na str.309) troszkę mi się rozjaśniło. Oto poniższy kod który stworzyłem na podstawie powyższego. ....... Sprawdzę działanie w praktyce jutro. Gdyby było coś jeszcze w nim nie tak to proszę o reakcję :) \] O to właśnie chodziło! Dodam jeszcze: -zwróc uwagę na rejestr ADUMX. Trzy górne...
A w ogóle to umieszczenie wyświetlania w przerwaniu timera nie jest dobrym pomysłem, to co było powodem oryginalnego problemu. W przerwaniu Timera (1), lub(0) odmierzajacym czas dla multiplexing, umieśc tylko flagę, a procedurę wyświetlania przesuń do instrukcji warunkowej uczulonej na tą flagę , jednocześnie kasując tą flagę w tej instrukcji i umieśc...
Witam, Przeszukałem forum, goglowałem i niestety nie mogę znaleźć rozwiązania pewnego problemu. Poskładałem mały projekcik oparty na atmega8 i 6 segmentach LED. Do anod użyłem 6xbc327 sterowanych z portu d przez rezystory 10k. Katody steruje z portu c przez rezystorki 220 ohm. Programy testowałem różne - pisałem je w bascom - ostatni służący do testów,...
Co to za procesor ? Podaj przyporządkowanie linii portów (co która robi) ? W którym momencie masz ten błąd (przy ustawianiu, której cyfry) ? Procesor 89C51 No to jest Tak Port P0 steruje segmentami czyli P0.0 = A P0.1 = B P0.2 = C P0.3 = D P0.4 = E P0.5 = F P0.6 = G P0.7 = Kropka "nie wykorzystuje" Cyfra(0) = 63 'Wyświetla 0 Cyfra(1) = 6 'Wyświetla...
Możesz użyć specjalizowanych układów SCT2024, można też zrobić multipleks. Jeden SCT obsługuje 16 diod led, do ustalenia prądu diod potrzeba 1 rezystor. Transmisja danych przez SPI, dla 100 szt. led wystarczy 7 scalaków. Obecnie cena w TME nie przekracza 2 zł brutto za sztukę. No i jakie łatwe oprogramowanie tych układów, szczególnie gdy podpięte są...
Wszystko załatwia się timerem i przerwaniem ovf oraz compare. Nie wiem jak w Bascomie to zaprogramować, w C to parę linijek kodu więc w Bascomie podobnie. Przykłądy w C znajdziesz np. w darmowych przykładach do książek z mojej stopki (Język C...), może ci to ułatwi port dla Bascoma.
Na początku tematu ograniczony byłem tylko do rozwiązania wyświetlania multipleksowego korzystając tylko z portów mikrokontrolera. Myślę iż skorzystanie z twojego rozwiązania czyli multipleks ale z cd4094 jest o tyle ergonomiczne iż pochłania mniej portów. Martwi mnie tylko jedna sprawa. Jak w Bascomie skorzystać z dobrodziejstw cd4094 aby trzy zmienne...
Ja również miałem problem z multiplesowaniem wyświetlaczy i jednoczesnym odczytem 1wire. Pomysł z wyłaczeniem przerwań od timera na czas transmisji 1wire okazał się prawidłowy. Ponieważ w trakcie pomiaru świeci się jeden wyświetlacz aby efekt był nie zauważalny możemy dokonywać pomiaru temeperatury rzadziej. Oto mój programik : $regfile = "m8def.dat"...
Witam mam trochę problemów z multipleksowaniem wyświetlacza a mianowicie znalazłem ten kod na stronie $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował Config Portb = Output 'port b jako wejścia Portb = &B11111111 'wszędzie stan spoczynkowy-0 Config Portd = Output 'pprt d jako wyjścia Portd = &B11111111 Do Wyswietlanie: Mux = Not...
Ogólnie to mam program gotowy w bascomie z tej strony autorstwa Pier https://www.elektroda.pl/rtvforum/topic1... Są duchy na nim po wgraniu oryginalnego softu a że jest kod to postanowiłem pogrzebać Jeśli ktoś wie gdzie w kodzie szukać częstotliwości i wypełnienia to proszę napisać Ja jedynie co znalazłem to timer - fragment kodu. [syntax=vbnet] Config...
Witam, Z racji ograniczonej ilości portów, zostałem zmuszony do multipleksowania dwóch wyświetlaczy LED 7 segmentowych poprzez rejestr 74HC595. Na początku dla testów napisałem krótki programik. Program działa, lecz posiada jedno "ale". Mianowicie gdy w pętli głównej nie ma "waitms" wyświetlana liczba jest nieczytelna ponieważ zbyt szybko następuje...
Gdyby drastycznie zmniejszyc rozdzielczość pwm i podnieść zegar na maksa to jest szansa, że by ten multipleks zadziałał, ale zdecydowanie lepiej zrobic jak radzi kolega Saabotaz i dodać dodatkowy rejestr.
Witam Jeśli napięcie zasilające wyświetlacz jest większe od Vcc uC to trzeba zastosować układ np.UDN2981A lub jego odpowiednik ( jest to taki ULN2803 tylko PNP ). Zwykłe klucze tranzystorowe nie mogą sterować anodami bo będą zawsze otwarte. Pozdr.
http://obrazki.elektroda.pl/3973217100_1... Witam! Pewnie wielu z was zetknęło się z problemem braku wystarczającej ilości wyjść w mikrokontrolerze. Mnie także to spotkało. Przy okazji innego projektu zaszła konieczność dołożenia wyświetlacza do już istniejącej płytki sterownika, ale jak to bywa - prawie wszystkie piny miałem zajęte....
Temat do zamknięcia
Właśnie jest wykonane i działa dlatego przerysowałem częśc która by mnie interesowała w jaki sposób to rozpracować.
Witam, To: If T(2) = 0 Then Temp = T(1) / 2 Else I = 256 - T(1) End If If Temp < 0 Then Set Portb.7 Temp = -temp End If nie będzie Ci działać tak jak się tego spodziewasz, bo w Bascomie typ BYTE jest bez znaku (0-255), ale zamień "< 0" na "> 127" i masz już prawie wszystko na talerzu. Tu też jest błąd: If T(2)...
Witam, Czy ktoś wie jak można symulować multipleksowanie wyświetlaczy LED w proteusie, bo coś mi się wydaje, że chyba nie można, tak jakby program się nie wyrabiał z szybkością przełączania wyświetlaczy, bo kiedy dam w pętli opóźnienie około 100 ms, to nawet działa, ale z wielkimi skokami, wiadomo, a szkoda bo program jest całkiem fajny :-( Na płytce...
xanio --> nie musi nic kupować, żadnych tranzystorów. Na tej płytce AVT3500 ma wszystko czego mu potrzeba do multipleksowania 4 szt wyświetlaczy LED. Problem w tym, że autor nie wie jak zrobić multipleksowanie - no to już trzeba co nieco poczytać i poszukać w necie. Wujek google przyniesie ci sporo linków do różnych kursów Bascoma w tej kwestii, gdzie...
Wszystko działa dobrze, może ktoś ma pomysł na dalszy rozwój bo kod zajmuje jedynie 3.5KB. Napisz to w Bascomie :lol: :twisted: Wciąż myślę jak to skalibrować... nie wiem czy termistor się nie uszkodzi od wody? Nie powinien, tyle że ty chciałeś pokojowe temperatury mierzyć to nie wiem czy jest sens wrzucać do wrzątku i kalibrować. Jak mniej punktów...
Przerwanie_0: 'co 2ms If Liczniczek_przygotowanie_odczytu < 400 Then Incr Liczniczek_przygotowanie_odczytu If Liczniczek_przygotowanie_odczytu >= 400 Then 'co 800ms odzyt DS Liczniczek_przygotowanie_odczytu = 400 Flaga_przygotowanie_odczytu = 1 End If End If Flaga_dodatkowa = 1 'do wykorzystania w innym sub- też co 2ms- to Twoje sterowanie...
Pomiędzy instrukcje: On Timer2 Multipleks Enable Interrupts wstaw instrukcję Start Timer2. Nie na początku przerwania jak napisał daro:"A na początku obsługi przerwanie tego timera: Start Timer2."
scal sobie te dwa bajty w jedna zmienna. T = Makeint(mbt , Sbt) T = T * 10 T = T / 16 Oczywiscie zmienna T jest typu integer W tym momencie masz liczbe 3 cyfrowa z ulamkiem ale bez kropki. Czyli 24,5 stC jest zapisane jako 245 Wystarczy odpowiednio powycinac cyferki do multipleksu wlaczyc kropke na wysiwetlaczach i gotowe.
Wystarczy trochę poszukać: http://www.interklasa.pl/portal/dokument... http://mirley.firlej.org/multipleksowani... http://forum.mikrokontrolery.net/viewtop... http://www.cyfronika.com.pl/adatronik/zk... http://modywzm.pl/14,zegar-z-wyswietlacz... ... i wiele innych....
neo_84 sprawdziłem ci to na ZL2AVR no i mogę potwierdzić że kod z pierwszego posta kompilowany 11174 działa, natomiast kompilowany wersjami 1119->2->3->5 nie działa poprawnie. Generalnie pomaga usunięcie opóźnienia z pętli (jest odczyt z ADC), ale pojawiają się problemy z multipleksowaniem wyświetlaczy.
Pokaż chociaż kawałek kodu to zobaczymy jak to zrobiłeś. Do przemyślenia podam kilka przybliżonych wartości. Odczyt 9 bajtów z DS18B20 (razem z CRC) trwa ~7ms Odczyt tylko dwóch bajtów ~3ms Multipleksowanie 4 LED7Segment to najcześciej 200Hz czyli co 5ms Obsługa wyświetlaczy w przerwaniu trwa ~ 5 us przy 8MHz Napisz przerwanie optymalniej a Dallas nawet...
Tak trzeba czekać, ale to nie jest absolutnie żaden problem. Można to zrobić na kilka sposobów, jednym z nich jest właśnie wystawienie flagi, ale są sytuacje gdzie cały odczyt można tam wcisnąć. Nie pamiętam już co było powodem, ale właśnie w jednym ze swoich sterowników odczyt umieszczony był w przerwaniach razem z multipleksem i czymś tam jeszcze....
Z takim kwarcem da się zrobić programowe 20kHz. Ze sprzętowym nie ma problemu z jakimikolwiek przerwaniami. Zapewne chodziło o przerwania występujące podczas multipleksu wyświetlaczy, ale wtedy przy odpowiednim zarządzaniu przerwań także nie ma problemu z odczytem z 1Wire.Także piszę w bascomie i mam program z 4xDS18B20 na przewodzie 20m i z 15 multipleksowanymi...
Niestety trochę trudno zrobić na tym układzie stoper, bo jak wiadomo liczy on do 9 i zwiększa liczbę o 1 pozycję w lewo, a jak wiadomo minuta ma 60 sekund :| . Możliwe jest, aby wyświetlał on wynik w sekundach, ale to nie jest wygodne :| . Ja bym to zrobił na jakimś uC (np. AT90S2313 albo ATTiny2313) i napisał program w Bascom'ie. Dla uproszczenia dodałbym...
1.STFW.... 2.RTFM [kolejny bascomowiec] 3.Naprawde, bascom nie zastępuje programisty do tego stopnia, zeby miał zaimplementowaną obsługe CZTEROCYFROWEGO WYSWIETLACZA LED!... Wniosek: Uzyj multipleksowania, a jesli nie wiesz co to jest, zastosuj sie do punktu pierwszego. 4.Jak wyeliminować to ze "tak jakbys nacisnął dwa razy": to sie nazywa drganie styków....
Najpierw musisz zająć się multipleksowaniem twoich wyświetlaczy i nauczyć się wyświetlać na nich cyfry. Poszukaj na forum bo było sporo tematów o tym.
Cóż, opis działania rejestru przesuwnego jest w notach katalogowych i mówisz, że wiesz, jak to zrobić. Poszukaj o multipleksowaniu wyświetlaczy LED - w przypadku "zwykłych" diod zasada będzie ta sama.
(at)emarcus Napięcia mierzone multimetrem, względem masy. Wartości te są niskie wg. mnie przez multipleksowanie właśnie. Nie wiem/nie mam jednak pomysłu jak to obejść. Wartości te nie są niskie. Wysyłasz sygnał "1" na port z częstotliwością ok. 62Hz o wypełnieniu 25%. Multimeter uśrednia pomiar i w efekcie otrzymujesz 5V/4. Wahania napięcia na róznych...
Super. Wielkie dzięki. Nie spodziewałem się tak szybkiej pomocy. Będę chciał dziś wieczorem przetestować programik i dam znać. Oczywiście nie mam nic przeciwko optymalizacji i dostosuje się do niej :) Podoba mi się twoje koncepcja. Jeżeli mogę dopytać. Większość postów które czytałem związane były z multipleksowaniem, czyli wyświetlanie liczb przez...
Nie posiadam schematu w eagle. (Stworzę, gdy tylko opanuję ten program). Moduł uruchomieniowy mam stworzony własnoręcznie i przetestowany za pomocą BASCOM. Klawisze mam podłączone do pinów PB0, PB1, PB2 i PB3. Raz jeszcze sprawdziłem zgodność z pinoutem oraz miernikiem, czy faktycznie klawisze zwierają piny do masy. Zwierają. Makra mam w porządku napisane?...
klops_mops ---> masz dwa wyjścia żeby ci nie mrugały te wyświetlacze w czasie PRINT'a ;) - innymi słowy mówiąc aby procedura wysyłania RS232 nie zakłócała procedury multipleksowania 1. prostszy sposób - zwiększ tą kocią prędkość RS232 na jakąś ludzką - chociaż 9600bps to już praktycznie nie powinno ci mrugać a jak dasz każdą większą to już będzie coraz...
Te tablice data których jest 8 to tablice do poszczególnych kolumn. Tam są pod nim zapisane wartości (numery są pobierane z kodu ASCII) które mają być wysłane w zależności od literki i kolumny która jest multipleksowana. A literki robi się bardzo prosto narysuj sobie kwadrat 8x8 kratek i namaluj literkę i potem tam gdzie masz zamalowane maja świecić...
Cześć, Musisz dołożyć dwa kolejne wyświetlacze i: - linie W1-W7 podłączyć do nich równolegle z pierwszym wyślwietlaczem - dorobić wyjścia C6-C15 analogicznie do tych co już istnieją (każde do osobnego portu kontrolera - w Mega32 wystarczy wyjść) - w programie zmienić: Dim Kol(5) As Byte na Dim Kol(15) As Byte C1 Alias Portb.0 'przypisanie linii PB0...
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
Z bascomem nie pomogę, ale zasady pewnie są podobne. Przenieś multipleksowanie wyświetlacza do przerwania timera.
Bufor jest 1 bajtowy ale całą ramkę może skompletować slave a master odbierze całą i po analizie ją wyśle.
W takich sytuacjach najlepiej zmniejszyć częstotliwość multipleksacji abyś mógł zaobserwować przełączanie wyświetlaczy i sprawdzić poprawność wyświetlania. Dim Display_buffer(4) As Byte [...] Display_buffer(1) = 2 Display_buffer(2) = 4 Display_buffer(3) = 6 Display_buffer(4) = 8 Do [...] Loop End...
Aha - podam mój tok rozumowania i jeśli jestem w błędzie proszę o poprawkę ;) Pod np. P3.0 podłączam wejście A, natomiast pod P3.1 podłączam CLK. Następnie wystawiam na wyjście P3.0 ciąg bitów za pomocą Bascoma: P3.0 = &B01001000 Oznacza to że włączenie się odbiornika (np diody) podłączonej do pinów B i E? Aha i jeszcze jedno - co muszę podawać na clock?...
Rozchodzi mi sie o bascoma
Witam. Szukałem na forum i niestety nie znalazłem jednoznacznej odpowiedzi na mój problem (tak czasami bywa). Tak więc atmega8 to tego wykorzystany wewnętrzny ADC, kanał 0, wpięty lm335+4k7 do VCC, kwarc 11059200, zasilanie przez dławik 10uH do AVCC, 10uF pomiędzy AREF i GND zgodnie z opisem z helpa, configuracja ADC: Config Adc = Single , Prescaler...
hmm. No właśnie tego rozwiązania chciałem uniknąć, też na to wpadłem ale sieć chciał bym by miała potencjał do przyjęcia choć 20 slave-ów na przyszłość a to już 5 pinów i grubszy kabel. Możesz użyć multipleksowania, lub rejestru równoległo-szeregowego - np. na I2C - masz 8 wejść, a tylko dwoma pinami łączysz z MCU. Można też kodować analogowo - np....
Tak może współpracować dwa modułami na raz ale muszą być różne komendy albo multipleksowanie modułów.
1. używaj znaczników CODE 2. na początek zapoznaj się z obsługą wyświetlaczy led z wykorzystaniem multipleksowania
w wierszach mam katody. Aha czyli nie udało ci się wpisać tekstu i przewijać go?....czyli do wierszy (katod) mam dać jeden UDN2981 + rezystor (spadek napięcia np. 6,5V, gdy zasilam 9V). natomiast na kolumnach rejestr przesuwny + ULN2803. próbowałeś zapalić wszystkie diody multipleksem? Dodano po 7 a czemu dales atmega32, a nie np. atmega8?
Witam Zmontowałem sobie układ atmega8 oraz 35 LED połączonych w małą matrycę 7x5 Załadowałem kod który jest napisany w listingu do książki Marcina Wiązania.Są tam dwa kody jeden do wyświetlania po kolei wszystkich znaków ASCII który działa bez problemowo oraz drugi który przewija text lecz on nie działa Oto ten kod. Co jest w nim nie tak? 'Program tablicy...
Nie zniechęcajcie bo widzę same superlatywy. \ Nie odbieraj tego jako zniechęcanie. To nie jest tak, że jedno rozwiązanie jest najlepsze, a inne są złe. Po prostu trzeba dostrzegać różne aspekty i wybrać to co w danej chwili jest najlepsze. Dedykowany sterownik jest ok, ale np. jakie widzę wady: - cena i dostępność (niekoniecznie to musi być wada),...
Bascom mnie odrzuca, ale o ile się nie mylę to wykorzystujesz przerwanie z przepełnienia timera. Prescaler dajesz 256, timer jest 8-bitowy, więc daje przerwanie raz na 65536 cykli, czyli zaledwie 122Hz. I to jeszcze dzielisz na poszczególne wyświetlacze - musi mrugać. Zwiększ szybkość odświeżania, np. poprzez zmniejszenie prescalera. Dopiero przy ok....
Świetny zegarek, starannie zrobiony i przemyślany. Do nextępnego projektu kilka uwag, wtedy zrobisz perfekt zegar: -dwukropek wygaszany + sterowalne kropki -wyświetlanie ujemnych i dodatnich temp. na tych samych pozycjach. Choćby płaska dioda jako minus Z tym dwukropkiem rzeczywiście mogłem go o jeden stopień przesunąć w bok no ale cóż następnym razem:)...
Był taki probem w BASCOMie z funkcją GETADC(). Po zmianie kanału odczytywała ona nadal poprzedni kanał, mimo iż multiplekser był przełączany poprawnie. Rozwiązanie problemu było dość proste. W rozwinięciu funkcji zastosowano dwukrotny odczyt stanu przetwornika ADC. Pierwszy odczyt odrzucano, i brano pod uwagę tylko drugi odczyt. Wada: Dłuższy czas oczekiwania...
Bez specjalnego ingerowania w program uruchom sobie Timer1 (w końcu zapłaciłeś za niego :D ) i zmuś go do przerwania co określony czas. Dioda będzie sobie migać równiutko, a jak napiszesz krótką obsługę przerwania to multipleksowane wyświetlacze się nawet nie zająkną. Polecam instrukcje: Config Timer1... Start ... Load... On... Enable... a później Toggle...
Fredy --> proponuję ci daj sobie spokój z takim porównywaniem bo to lekka albo nawet duża niedorzeczność, żeby na bazie takiego pseudo kodu w ogóle porównywać wielkość wsadu po kompilacji. Jak chcesz już coś porównywać, to postaw sobie jakiś cel np napisanie jakiegoś większego programu na ten sam procek. Wtedy spróbuj ten sam cel zrealizować za pomocą...
jedyne co przychodzi mi do glowy to 3 cyfry czyli 3 piny i w kazdym po 7 "kresek" i wszystkie kreski "a" polaczone ze soba wszystkie "b" i tak do "g" i to do 7 wyprowadzen proca czyli 10 pinow. i zapalac tak jak mowisz - po kolei szybko: np kreska "a" i w tym czsie jak jest "a" to zapalac odpowiadajace temu wyswietlacze i tak wszystko p okolei... Brzmi...
MADMAX1978 --> hehe ciekawy temat ;) dla grupy para-militarnej . No ale jeśli to tylko zabawa czy tam gra to żaden problem. Tak jak koledzy mówili możesz użyć dowolnego procka nawet ATmega8 jednak tak prostą rzecz spokojnie da się zrobić na jeszcze mniejszym procku - wystarczy np ATtiny2313 Niestety obawiam się, że sama wiedza jaki to procek - nie wystarczy...
Wygląda na to, że źle sterujesz multiplekserem. Pokaż fragment kodu , w którym przełączasz kanały. Może wtedy będę mógł pomóc.
Bascoma nie znam więc nie będę się w tym temacie wypowiadał. Natomiast uwaga co do multipleksowania: To nie ma sensu. 1.Nie będziesz mógł uśpić procesora, bo będzie musiał się zajmować odświeżaniem stanu diod. 2.Obniżenie poboru prądu dostajesz z tego, że każda dioda pracuje np. przez 1/10czasu. To samo możesz uzyskać zwiększając odpowiednio rezystor,...
Kolego tera nie działa mi ustawianie godzin a zrobiłem to tak deklaracja:[syntax=vbnet] Declare Function Ustaw(byref Godziny As Byte , Byref Minuty As Byte , Sekundy As Byte) As Integer Declare Sub Znak(cyfra As Byte) 'deklaracja tablicy stałej do wyświetlania cyfr i znaków na wyświetlaczu 7 seg Declare Sub Czytaj 'deklaracja funkcji bez parametru do...
Chcąc bezproblemowo zmieniać kanały powinieneś zostawić GETADC() i w konfiguracji zmienić na SINGLE . W trybie FREE przetwornik mierzy ciągle (ustawiając flagi przerwania ADI F po każdym pomiarze), a ostatni wynik będzie znajdował się w zmiennej specjalnej ADCD (typu Word ). Jednak zmiana kanału pomiaru jest nieco problematyczna, bo kanały musiałbyś...
Witam, ja w swojej aplikacji z przetwornikiem 12 bitowym ADS1286 używam multiplekserów 16 kanałowych cd4067.Ale są i Analoga coś z oznaczeniami ADG406-chyba.Wystarczyłyby Ci 4 takie multiplexery.Albo poszukaj adc z multipleksowanymi wejsciami,to mniejsza płytka :) Parametry multiplexerów musisz sam porównać i wybrać (rezystancja kanału ip.)Wszystko...
ADC0831, ADC0834, ADC0838 7-10 zł ADC0804 (równoległy) ok 7 zł ADC0820 (szybki) ok 12zł itd... Przy kosztach na poziomie 2 zł można zrobić stosunkowo dokładny, tyle że wolny przetwornik z podwójnym całkowaniem (np. 4051+LM324+kilka elementów dyskretnych). Najprostsze podłączenie do portu i oprogramowanie - przetwornik U/f (np LM331) - daje dobrą dokładność,...
Możliwości jest bardzo dużo, mógłbym bez problemu nauczyć się pisać programiki w Bascomie i programować mikrokontrolery albo bawić się z PLD, które chyba programowało się poprzez przepalanie ścieżek w strukturze logicznej (?). Tyle, że mnie póki co interesują właśnie starsze technologie, chcę poznać jak to kiedyś się robiło i budować układy na podstawowych...
Ale Ty jesteś niecierpliwy. Masz odczyt DS bez wait- które to wait wszystko psuje. Flaga_dodatkowa wykorzystaj do multipleksowania wyświetlaczy. I podziękuj malon-owi za dobry pomysł. $regfile = "m8def.dat" $crystal = 8000000 '********* Konfiguracja wyświetlacza ********* 'oczywiście może być bez RW $lib "Lcd4busy.lib" Const _lcdport...
tylko multipleksować najlepiej 4 linie na dekoder bcd->lcd odpowiednie piny 3 wyświetlaczy zewrzeć ze sobą + 3 linie do tranzystorów włączających wyświetlacz w bascomie sterujesz tak jak normalnymi wyjściami (diodami ) tylko z odpowiednią częstotliwością
Małe pytanko a obsługa wyświetlania multipleksowanego jest wykonana w przerwaniu czy w pętli programu po ustawianiu zmiennej F4ms? EDIT: Nie rozumiem, zapis do eepromu wykonuje się 20 razy (zmienna Autoret = 20)
Samo wykorzystanie M32 do minutnika jajek jest już nieekonomiczne, ale zakładam, że taki masz procesor na stanie. Po pierwszej nie używaj takich warunków... Jak rozwiązujecie sprawę migania dwukropka? Ja zazwyczaj dwukropek też robię w multipleksie (gdy nie mam wolnych pinów uP) łącząc go z pinem sterującym kropką wyświetlaczy i włączam podczas wyświetlania...
Oczywiście, że w grę wchodzi tylko sterowanie multipleksowane. A więc jak mówiłeś- wyświetla na jednej lampie, potem na drugiej, trzeciej i czwartej i od nowa na pierwszej. Na taki "obieg" masz około 1/30 sekundy.
Ogólnie może być. Podoba mi się rozwiązanie z bramką NOT dla multipleksu chociaż by tu zwykły tranzystor wystarczył. Troszkę drażniące te piski są. Lepiej już było wygenerować coś przez uC. Poznałem też kilka trików pozwalających na zmniejszenie objętości programu w BASCOMie (np. kto by się spodziewał że lepiej użyć kilku poleceń If...End niż logicznych...
Witam. Robię trzycyfrowy wyświetlacz led sterowany przez rs 485 (na razie 232) i zastanawiam się nad sposobem przesyłenia danych , poczytałem posty na tym forum + specyfikację gotowego protokołu i postanowiłem że chciałbym przesyłać: 1 bajt startu , 2 bajty adresu , 1 bajt rozkazu , 2 bajty danych , 2 bajty sumę kontrolną , 1 bajt koniec ramki . Pytania:...
no racja zapomnialem zmienic. Najlepsze jest to ze w ksiazce od bascoma jest 3 to chyba blad, bo przecinek to tez jest znak. Jeszcze jedno pytanie do fachowcow: zauwazylem ze z podlaczonymi tymi rezystorami pobor pradu mi zwieksza sie o ok. 0.17mA . Ja walcze o kazdy mA bo wszystko jest tez zasilane z bateri cr2032 czy da sie ten problem jakos rozwiazac?
Jest 2017 rok i do sterowania takimi wyświetlaczami są specjalizowane układy które to robią bez łaski a procesor który ma co innego do roboty będzie musiał sie bawić w multipleksowanie. No faktycznie, multipleksowane obciąża tak mikrokontroler, że trzeba koniecznie użyć zewnętrznego układu. Użyłem multipleksowania w mierniku panelowym (11 wyświetlaczy,...
co do Bascoma, to żeby zrobić I2Cslave, trzeba mieć dodatkową bibliotekę ( chyba jest na elce), ale o ile pamiętam obsługuje ona tylko jeden bajt pod adresem i tak naprawdę da się zrobić bez problemów ( podobno - bo nie próbowałem) tylko emulację PCF8574. co do multipleksowego sterowania LED'ami, to nie ma się co łudzić, że sterując bezpośrednio z procka...
AVCC zasilacz do używania portu 'A' oraz/lub przetwornika ADC oraz/lub komparatora analogowego(opcja wyboru multipleksowanego wejścia komparatora). RESET do VCC przez 22k Co do reszty nie pomogę bo to BASCOM... Ale muszę z ciekawości spytać czy kolega ma oryginalną wersję BASCOM'a czy DEMO? ;)
to da sie zrobić cos takiego bez multipleksowania? Tak, da się zrobić coś takiego, ale tylko proste animacje... zamieszczę film z demonstracją niedługo. Do michas: Na zmianę tranzystorów już było za późno w czasie gdy to robiłem (zauważyłem problem wiedz go opisałem), taki sposób połączenia działa mam dowód na to :D uwagi i zastrzeżenia przyjmę do...
http://obrazki.elektroda.net/45_12550561... Elektroniczna wizytówka/wyświetlacz. W zależności od przyciśniętego przycisku wyświetla przesuwający się tekst za pomocą 85 multipleksowanych diod LED. Może służyć także jako zwykły wyświetlacz do dyskretnego przekazywania informacji, a ponieważ posiada niewielkie wymiary (24mm x 85mm), można go zabrać...
Hmm kombinuje ale coś mi nie wychodzi, możesz na podanych listingach wyżej dopisać w którym miejscu co trzeba sprawdzać? Już chyba za długo przy tym siedzę i nie mam świeżego umysłu ;) Coś już działa: Udało mi się wysyłać i odbierać dane w obu uP, ale teraz mam problrm z wysłaniem i odebraniem sumy CRC8. Ponieważ także 1-wszy raz w życiu wykonuje generowanie...
No cóż, zamiast '164 do sterowania kolumn lepsze by były SCT2024, do wierszy można by użyć '595, podłączone do sprzętowego SPI ATMEGI, pozwoliło by to pozbyć się zbędnej logiki. Pomagałem robić podobną tablicę jako pracę dyplomową, użycie SCT2024 znacznie uprościło układ, w przypadku 120 kolumn potrzeba by 8 x SCT, dla 16 wierszy można by dać 15 x SCT...
Witam! Czy w Bascom'ie jest mozliwosc napisania programu ktory bedzie wysylal sygnal PWM na np. port D (PD0-PD7). Jak narazie znalazlem tylko opis sterowania dwoma diodami na wyprowadzeniach OC1A i OC1B. Czy mozna ten sygnal jakos "przelaczac" na dowolny port/pin i zrobic cos jakby multipleksowanie?
Niestety Kolego "elektronik.b" nie rozumiesz tego programu, wklepujesz co popadnie i to nie zadziała. Jak na początek przygody z mikrokontrolerami wybrałeś sobie FATALNIE napisany program... nie robi się multipleksowania w pętli głównej i to jeszcze odlicza interwały pauzami. Nawet jak w jakiś cudowny sposób ogarniesz wyświetlanie bez migania, to ten...
(...) ' 5 Data 250 ' 6 Data 131 ' 7 Data 251 ' 8 Data 219 ' 9 Wstępna ocena dostępnych informacji W kodzie widzimy dwa liczniki (Liczba_ok i Liczba_nok) zadeklarowane jako zmienne typu Word, a także tablice na cyfry (Cyfra_ok i Cyfra_nok) jako typ Byte. Z punktu widzenia zakresu wartości samych liczników (od 0 do 999) nie powinno to powodować błędów...
Witam. Proponuje zacząć projekt od zapoznania się z Timerami i z przerwaniami od nich. Następny krok to wyświetlacze LED sterowane multipleksowo. [url=http://diycenter.acid19.linuxpl.com... szczypta teorii na temat wyświetlaczy. Potem proponuję uruchomić wyświetlacze i wyświetlić na nich jakiekolwiek cyfry. Poniżej (tak...
multipleks bascom wyświetlacz multipleks multipleks wyświetlacz
falujące niskie obroty kosiarka nokia trybie offline głowica lexmark czyszczenie
Wymiana procesora w HP ProBook 6555b na mocniejszy Błąd P0400, podwyższone obroty, VSC i 4WD w Toyota 2.2 D-4D