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



Teraz jest 24 mar 2026, o 07:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
 Tytuł: Sterownie PWM
PostNapisane: 22 mar 2013, o 12:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam!
Czytam rozdział o sterowaniu pwm diody RGB. I utknąłem w miejscu. W głównej funkcji main jest inicjalizacja timera0 i ustawienie go w fast PWM czyli na pinie PB3 mamy ładny przebieg - i to rozumiem. Dalej jest ustawienie kierunków pinów dla programowego pwm i ustawienie timera2 w tryb ctc - to też jest zrozumiałe. W obsłudze przertania ISR (TIMER2_COMP_vect) jest bezpośrednie sterowanie kanałami programowym pwm na 6 pinach - wszystko fajnie.

A teraz dlaczego w głównej funkcji while w pętli for po każdym obiegu tejże pętli wartość zmiennej "i" jest ładowana do OCR0 timera0 zamiast timera2. Jakoś nie mogę tego pojąć.

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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 12:56 
Online
Moderator
Avatar użytkownika

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

No przecież sam piszesz że sprzętowy PWM jest oparty o Timer0 ;) a programowy jest zrealizowany na Timer2.

Więc co dziwnego ? ---- OCR0 to rejestr porównania właśnie Timera0, który generuje ci przebieg sprzętowego PWM i dzięki zmianie OCR0 zmieniasz wypełnienie tego PWM'a

zaś na Timer2 masz tryb CTC - tam tylko raz ustalasz częstotliwość, a wypełnieniem sterujesz za pomocą już zmiennych pwm1, pwm2 itp które pełnią rolę podobną jak sprzętowy rejestr OCR0 w Timer0 czyli w sprzętowym PWM'ie

_________________
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: 22 mar 2013, o 13:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 lip 2012
Posty: 157
Pomógł: 8

Timer0 pracuje jako sprzetowy PWM, natomiast Timer2 jako PWM programowy. OCR0 to nasz rejestr porównania o do niego wpisana jest wartosc przy z jakim wypełnieniem pracuje PWM sprzętowy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 13:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Ok to zrozumiałem.

A jeszcze mam takie pytanie, ponieważ programowy pwm robię na timer0 i wszystko działa fajnie i chciałem dodać programowe timery żeby nie używać opasłej biblioteki delaya, i jakoś oba timery się pogodzić nie mogą, bo kiedy inicjalizuje timer2 w tedy przestaje działać także pierwszy.

Czy tam to związek z rejestrem TIMSK, obydwa timery go używają jednocześnie?

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


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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 13:42 
Offline
Nowy

Dołączył(a): 17 gru 2012
Posty: 17
Pomógł: 1

W inicjacji timera 2

zamiast:
Kod:
TIMSK = (1<<OCIE2);


powinno być:
Kod:
TIMSK |= (1<<OCIE2);



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2013, o 13:50 
Online
Moderator
Avatar użytkownika

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

No dokładnie jak pisze kolega beret82 wyżej ;) to ratuje życie i chroni przed stresami czyli dwuczłonowy operator

_________________
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: 22 mar 2013, o 13:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

dzięki:)

_________________
Inspekcja TV kanalizacji
Programowanie



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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