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



Teraz jest 10 sty 2025, o 22:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 13 wrz 2013, o 09:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Witam,
Mam problem ze zrozumieniem timera 16bitowego. Nie wiem dlaczego ale wydaje mi się (Na pewno błędnie) że w tym timerze są niejako 2 przerwania...
Jak wiadomo, możemy skorzystać z przerwania TIMER1_COMPA_vect i TIMER1_COMPB_vect

Żeby skorzystać z wektora przerwania COMPA możemy napisać taki kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A co jeśli zrobimy coś takiego i do rejestru TIMSK wpiszemy
TIMSK |= (1 << OCIE1A) | (1<<OCIE1B); // Enable CTC interrupt
Wtedy domyślam się, że zostanie odblokowany wektor przerwania
ISR(TIMER1_COMPB_vect)

No ale jeśli tak jest to co?
Możemy wpisać OCR1B = 666; // Set CTC compare

I mamy tak jakby wykonywane dwa przerwania używając tylko 1 timera??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 10:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27343
Lokalizacja: Szczecin
Pomógł: 1041

oczywiście że tak .... po co inaczej miałyby być te dwa przerwania ;) ale UWAGA! jeśli OCR1B będzie miało większą wartość niż OCR1A to przerwanie TIMER1_COMPB_vect nigdy się nie wykona.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 14:25 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Ja się podepnę troszkę może temat obok. Który tryb timera 1 wybrać, żeby sterować dwoma wyjściami PWM OC1A/OC1B niezależnie. Czyli że raz rejestr A jest większy a raz mniejszy od B bez zerowania licznika TCNT1. Chodzi w szczególności o niezależne sterowanie dwoma silnikami DC PWM'em.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 15:09 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27343
Lokalizacja: Szczecin
Pomógł: 1041

perlon napisał(a):
Ja się podepnę troszkę może temat obok. Który tryb timera 1 wybrać, żeby sterować dwoma wyjściami PWM OC1A/OC1B niezależnie. Czyli że raz rejestr A jest większy a raz mniejszy od B bez zerowania licznika TCNT1. Chodzi w szczególności o niezależne sterowanie dwoma silnikami DC PWM'em.


No właśnie któryś z trybów PWM ;) obojętnie czy FastPWM czy Phase Correct PWM. To nie są tryby CTC więc nie ma tego o czym pisałem wyżej. Gwyn też pisał.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2013, o 21:52 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Dzięki. Teraz jestem w domu. Dla DS'a Mega8A parzyłem w tabelkę 17-5 jak sroka w kość i niedopatrzyłem do ilu liczy timer. Czyli przykładowo Mode 5 to PWM liczący do 255 tak jak Timer2. Tylko po drodze może sterować dwoma wyjściami OC1 i OC1B. Czy przy takim trybie można obsłużyć oba przerwania CompareMatchX? Pytanie teoretyczne, bo na razie nie widzę zastosowania w przeciwieństwie do Overflow które może faktycznie robić dodatkowo za softowy timer.

_________________
sig off ;(



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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