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...
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...
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.
...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...
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.
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...
czyli jak w programie zmienie multipleks na timer 1 to bedzie działało?
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...
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....
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...
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.
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 Ten licznik na pewno działa. No właśnie u mnie też to działało, bo teraz już nie programuje na AVT 3500. Czyli *zaba* coś poknociłeś, bez urazy. :D Pozdro
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...
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.
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...
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...
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...
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...
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"...
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....
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."
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...
Bufor jest 1 bajtowy ale całą ramkę może skompletować slave a master odbierze całą i po analizie ją wyśle.
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.
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...
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?...
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....
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?
Temat dosyć stary, ale borykam się z problemem jednoczesnego multipleksu wyświetlaczy (co 4ms) i dekodowania RC5: http://www.elektroda.pl/rtvforum/viewtop... Pytanie do kolegi klops_mops...czy nie miałeś przygaszania lub innych problemów z wyświetlaniem podczas odbioru RC5?
1. używaj znaczników CODE 2. na początek zapoznaj się z obsługą wyświetlaczy led z wykorzystaniem multipleksowania
Tak może współpracować dwa modułami na raz ale muszą być różne komendy albo multipleksowanie modułów.
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....
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?...
bascom multipleks wyświetlacz multipleks multipleks wyświetlacz
opada siłownik rower elektryczny legalny prosty termostat dioda
renault edc16c41 renault edc16c41
Jak otworzyć zatrzaśnięte tylne drzwi w Seat Leon 2? Regulacja magnetofonu M9108: krok po kroku