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



Teraz jest 18 sty 2025, o 04:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 30 cze 2014, o 19:10 
Offline
Użytkownik

Dołączył(a): 27 lis 2013
Posty: 25
Lokalizacja: Legionowo
Pomógł: 3

Wy przerwaniu tworzysz dwie zmienne i każde zwiększasz o jeden, i musisz policzyć do ilu musi się zwiększyć zmienna aby twój warunek był spełniony.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 cze 2014, o 20:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Na ile mój angielski jest (po prostu pisząc słaby :))

to tutaj Cię informuje nota że do generowania
jakiś określonych przebiegów (waveform) nie jest
zalecane używanie trybu "Normal" ponieważ spowoduje to
zajmujcie zbyt dużo czasu uC.
Natomiast do generowania przerwań jak najbardziej Tak



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 cze 2014, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

Jeśli ustawisz Timer w tryb Normal to możesz korzystać z przerwania od przepełnienia (Overflow) jak i z przerwania od porównania (Compare Match). Z tym, że obydwa przerwania będą wywoływane co taki sam odcinek czasu.
Krótki przykład: Atmega8, taktowanie 8MHz.
Timer1 ustawiony w tryb Normal, preskaler 256, odblokowane przerwania Overflow i Compare Match.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W tym przypadku przerwanie Overflow będzie wywoływane co ok. 2 sekundy, ale przerwanie Compare Match też będzie wywoływane co 2 sekundy. Niezależnie od wartości w OCR1A. Zmiana wartości OCR1A będzie powodować to, że obydwa przerwania będą wywoływane w różnej odległości czasowej między sobą.
Czyli przy wartości OCR1A równej ok. 32768 (połowa pojemności Timera1) przerwanie Compare Match będzie wywoływane w połowie czasu między przerwaniem Overflow.
Przetestuj poniższy program z różnymi wartościami OCR1A a zobaczysz o co chodzi
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przy ustawieniu Timera w tryb CTC przerwanie Overflow nie będzie się wykonywać bo po zrównaniu się licznika z rejestrem OCR wartość licznika TCNT zostaje wyzerowana. A przerwanie Overflow jest wywoływane przy przejściu licznika z wartości MAX do zera.

Z przerwania Overflow można również korzystać wtedy gdy Timer pracuje w trybie PWM.


Autor postu otrzymał pochwałę


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ł: Majestic-12 [Bot] i 4 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