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



Teraz jest 7 gru 2019, o 04:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 1 gru 2019, o 14:37 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 432
Lokalizacja: Katowice
Pomógł: 1

Cześć mam dwa pytania, ponieważ nie jestem biegły z angielskiego. Wałkuję od rana ustawianie timerów i przerwań i wychodzi mi to całkiem dobrze. Wszystko testuję na zestawie atb z atmegą 32 i kwarcem 11059200. Jaka jest różnica w Timer_1 16-bit pomiędzy TIMER/COUNTER1 CONTROL REGISTER A-TCCR1A, a TIMER/COUNTER1 CONTROL REGISTER B-TCCR1B.
Dodam,że ustawiam w testowym programie tryb normal o częstotliwości 100Hz.
Dlaczego muszę użyć TCCR1B, a nie TCCR1A?

Drugie pytanie dotyczy obliczania preskalera w timerze 8-bit i timerze 16-bit.
dlaczego obliczając np:
(8000000 Hz / 1024 (preskaler) / 200 Hz) - 1 = 38,06 --> rozumiem ,że tutaj odejmuję 1 i wynika to z tego,że zliczamy od 0-255. (timer 16-bit)
Ale dlaczego tej jedynki nie odejmujemy przy obliczaniu preskalera dla timera 16-sto bitowego? :D :?:

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2019, o 15:23 
Offline
Użytkownik
Avatar użytkownika

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

wojciechgorzolka napisał(a):
Jaka jest różnica w Timer_1 16-bit pomiędzy TIMER/COUNTER1 CONTROL REGISTER A-TCCR1A, a TIMER/COUNTER1 CONTROL REGISTER B-TCCR1B.
Poprostu ustawień jest tyle że nie zmieściły się w jednym rejestrze więc podzielono je na dwa rejestry TCCR1A i TCCR1B, i w zależności od tego co chcesz ustawić musisz sprawdzać w którym rejestrze dany bit się znajduje, np. bity WGM10 i WGM11 znajdują się w rejestrze TCCR1A, natomiast WGM12 i WGM13 znajdują się w drugim rejestrze czyli TCCR1B. Stąd Mirek zawsze powtarza że praca z notą procka to podstawa. No chyba że robisz to od dawna i pamiętasz co w którym rejestrze siedzi dla danego uC ;)

wojciechgorzolka napisał(a):
Ale dlaczego tej jedynki nie odejmujemy przy obliczaniu preskalera dla timera 16-sto bitowego? :D :?:
Nie ma znaczenia czy to licznik 8 - bitowy czy 16 - bitowy, wzór dla obu jest ten sam i dla obu się odejmuje tę jedynkę. Wynika to z tego że licznik licząc gdy napotka tę wartość przy porównaniu zeruje się (podczas jednego taktu zegara) stąd te dwa stany (wartość porównanie i wartość 0) liczymy jako jeden takt, więc należy to uwzględnić w obliczeniach odejmując 1.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2019, o 15:58 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 432
Lokalizacja: Katowice
Pomógł: 1

Dziękuję za wyjaśnienie :)

_________________
Nikt nie mówił,że będzie łatwo...



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: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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