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
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.
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...
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"...
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...
...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...
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...
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ą...
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,...
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...
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...
nie znam Bascoma, ale ja bym to zrobił tak: sprawdź i zapamiętaj stan klawisza, zegar idzie dalej normalnie jeśli za np. 1 sekundę stan portu jest ten sam co zapamiętany, przestaw czas o 1. Jeśli nie - nie rób nic. To można imho załatwić jednym timerem/aplikacją timera.
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.
czyli jak w programie zmienie multipleks na timer 1 to bedzie działało?
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.
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...
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...
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 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.
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...
Rozchodzi mi sie o bascoma
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...
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...
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...
Z bascomem nie pomogę, ale zasady pewnie są podobne. Przenieś multipleksowanie wyświetlacza do przerwania timera.
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.
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.
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.
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....
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...
Zawsze możesz wysterować do testu jedną cyfrę bez używania timera . Ustawiając odpowiednie porty w stan wysoki. Jeśli cyfra świeci dobrze a dopiero podczas multipleksowania zaczyna świecić znacznie słabiej oznacza że nie bierzesz pod uwagę średniego prądu segmentów jeśli przełączasz 4 cyfry to każda z nich świeci przez 1/4 czasu więc prąd segmentów...
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."
Masz zrobioną tabele dla jednego znaku tylko. Zmian znaku i tak dalej nie da się tak prosto zrobić, najlepiej stworzyć 5 tabel i każda tabela będzie odpowiedzialna tylko za jedna kolumnę i w niej będą wartości jakie należy wysłać w zależności od tego co chcesz wyświetlić i podczas multipleksowania bedziesz sobie odpowiednie pobierał. Jak chcesz umieszczę...
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...
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....
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....
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...
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?...
Bufor jest 1 bajtowy ale całą ramkę może skompletować slave a master odbierze całą i po analizie ją wyśle.
multipleks bascom wyświetlacz multipleks multipleks wyświetlacz
mikrofon odsłuchu audio telewizor xiaomi skraplacz ariston
hilti udaru naprawa udaru makita
Miganie w laptopie Dell Latitude - przyczyny i rozwiązania Jak wyciągnąć złamany grot z młotowiertarki?