Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 21 lut 2025, o 19:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 26 kwi 2017, o 19:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Witam,
Jak w tytule, jestem w trakcie ćwiczeń z BB - Multipleksowanie na 7-seg LED.
Ogólnie kod z pendrive jest pod ATmege32 a używam 328p więc między inicjalizacją Timera0 są drobne różnice - poległem :(
Starałem się na spokojnie chyba z 10x zmieniać kod i efekty były różne ale po kilku próbach znalazłem opcje, które w pewnym stopniu działają - wyświetlacz działa tylko że bardzo chaotycznie, widać jak te cyfry płyną jednak nic wyraźnie... Domyślam się że to będzie tylko kwestia poprawy ustawień tego timera i wyświetlanie się uspokoi :)

A tak dodatkowo największy problem sprawiło mi w zasadzie zrozumienie noty. Timer0 dzieli się na A i B to samo Timer1 i Timer2.
Opis ustawień bitu WGM jest np. tylko w rejestrze timera A z kolei bity do ustawień prescalera tylko w B <--W tym momencie zrobił mi się mętlik w głowie, nie wiem czy to jest zgodne dla A i B czy jak ?
Kolejną rzeczą są bity jakie można znaleźć w pliku "iom328p.h" - Bity z noty nijak się mają do tych z pliku (działają te z pliku różnią się tylko dopiskami typu 0A/1A/0B itp. np. OCIE2B można znaleźć w pliku a OCIEB/OCIEA w nocie... No ale tyle udało mi się znaleźć.
Koniec końców nie jestem w stanie stwierdzić co pomieszałem, jest to w zasadzie pierwszy raz kiedy próbuje sobie wykorzystać timer :)

Kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Oczywiście przykład jak już wspomniałem z pendrive'a - Staram się go dostosować :)
Jeśli ktoś ma chęci i czas to nie pogardzę dodatkowym wyjaśnieniem co do tej noty... Dosyć mi to zamieszało :)

PS: Jeśli to potrzebne mogę wrzucić filmik z pracy wyświetlacza.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 20:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1033
Lokalizacja: Trójmiasto
Pomógł: 190

W nocie masz kilka tabelek odnośnie timera 2
i tak np:
Obrazek
z której wynika że Aby ustawić tryb CTC (MODE2) który próbujesz ustawić to trzeba ustawić tylko WGM21 na 1 a Ty ustawiasz WGM22 który według tabelki jest trybem MODE4 opisanym jako RESERVED czyli takiego trybu nie ustawiamy.

Czyli powinno być mniejwięcej tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

reszta wydaje się być OK



Ostatnio edytowano 26 kwi 2017, o 20:41 przez xentis, łącznie edytowano 3 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 20:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

witam,
natomiast jeżeli chodzi o timer 0.
ustawienie TIMER0 -328p
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dobrze zerknij do noty. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 21:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Tak masz rację z tym Timer2, kilka razy zmieniałem timer w programie i się pomyliłem przy opisywaniu problemu :)
No ale tak, oboje podaliście przykład gdzie tryb CTC ustawiacie bitem WGM w rejestrze np TCCR2A/TCCR0A z kolei prescaler już w TCCR2B/TCCR0B, z tym właśnie miałem problem, rozumiem, że w taki sposób to trzeba robić tak? Z uporem chciałem wszystko ustawić w jednym rejestrze... To samo z zezwoleniem na przerwanie :) Wydawało mi się, że wszystko musi być w tym samym... :) Teraz dużo mi się wyjaśniło, jednak dalej nie działa prawidłowo - Wyświetlanie nie szaleje zamiast tego mam na każdej pozycji 1 (przed while ustawiłem, żeby wyświetliło kolejno 1,2,3,4), program jak wspominałem od Mirka więc nie zamieszczam całości :).

Teraz wygląda to tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Z kolei wektor :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W związku z tym zamieszaniem A/B B/A spróbowałem obu wersji - działa tylko B, przy COMPA nie działa nic.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 21:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1033
Lokalizacja: Trójmiasto
Pomógł: 190

Trochę mylisz pojęcia.TCCR2A i TCCR2B są rejestrami konfiguracyjnymi jednego timera, poprostu bitów konfiguracyjnych jest za dużo na jeden rejestr 8-bitowy więc zrobili po dwa A i B. Osobna sprawa to rejestry porównania (OCR2A i OCR2B) faktycznie może to trochę wprowadzać w błąd. Ale oba te rejestry również dotyczą jednego licznika poprostu producent dał możliwość generowania dwóch różnych zdarzeń dla dwóch różnych porównań.
Jeszcze jedno, wcześniej nie zwróciłem na to uwagi, w Twoim przypadku nie powinieneś używać rejestru porównania B ponieważ owszem przy porównaniu wykonuje się przerwanie od niego ale licznik nie jest zerowany tylko zlicza dalej (zgodnie z tabelką jaką podałem wyżej dla trybu CTC max wartością do której zlicza jest wartość zawarta w rejestrze OCR2A).


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 21:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

o. jakoś tak.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2017, o 21:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1033
Lokalizacja: Trójmiasto
Pomógł: 190

No i oczywiście procedura obsługi przerwania CompareMatch dla A



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2017, o 09:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Aaaa.... Widzicie, tu był pies pogrzebany :) tak więc teraz musze sobie na nowo notę przestudiować i będzie jaśniej :)
Jak wrócę do domu to zaraz sprawdzę co i jak, czy zadziała :)
Jeszcze raz dzięki!!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2017, o 17:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2016
Posty: 66
Lokalizacja: Katowice
Pomógł: 1

Działa, wszystko się już zgadza :) Teraz już to rozumiem, dzięki wielkie !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Majestic-12 [Bot] i 9 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO