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



Teraz jest 20 kwi 2024, o 03:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
 Tytuł: PWM ATmega644PA
PostNapisane: 24 gru 2011, o 20:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Witam!

To znowu ja :) Mam nadzieje że pisze w dobrym dziale.
Może najpierw podam wycinek kodu który pisałem:
Kod:
        DDRB |= (1<<PB3);          // ustawienie pinu na porcie B jako wyjście

   // ustawienie TIMER0 w tryb PWM fast
   TCCR0A |= (1<<WGM01) | (1<<WGM00);
   //TCCR0B |= (1<<WGM02);
   TCCR0A |= (1<<COM0A0) | (1<<COM0A1);      // Clear OC0 at top
   TCCR0B |= (1<<CS00);      // preskaler = 1


Więc tak jak wyżej działa. A miałem wrażenie że nie będzie działać i się męczyłem godzinę z od komentowanym wierszem:
Kod:
   TCCR0B |= (1<<WGM02);
// czyli ustawienie bitu WGM02 który znajduje się w rejestrze drugim

Po czym go za komentowałem ustawiając tym samym bity w odpowiedni sposób

http://imageshack.us/f/266/beztytuuqob.jpg

Patrze na tabelkę i widzę dwa tryby do obsługi PWM "Mode 3" i "Mode 7"
Myślę może Mode 3 ale patrze a tam w kolumnie Top jakiś 0xFF a ja muszę skorzystać z OCR0A.

W książce przy przerwaniach w dziale o obsłudze LCD korzystaliśmy z Mode 2 CTC no i tam jest to OCRA.
Myślę sobie więc że muszę wybrać Mode 7 bo i tam jest to OCRA. Ale po ustawieniu nie działa :( i tu całe moje pytanie czemu nie działa ? Jak z niego skorzystać ? Bo jak już wspomniałem na Mode 3 działa ino huczy ^^'

Mam nadzieje że zrozumiale wytłumaczyłem mój nie tyle problem co zainteresowanie tym :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 gru 2011, o 22:44 
Offline
Moderator
Avatar użytkownika

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

No i dobrze że wybierasz MODE 3 ;) ... Tam nie ma "jakiegoś Top 0xFF"

To jest właściwy tryb o jaki ci chodzi... Licznik TCNT0 zlicza od ZERA do 0xFF i w międzyczasie porównuje tę wartość z OCRx. A o to nam chodzi panie kochany. Właśnie tu używamy OCR0 do zmiany szerokości impulsu.

Tryb Fast PWM z użyciem MODE7 Timera0 działa nieco inaczej. Ale teraz nie będę tego tłumaczył ok?

_________________
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: 25 gru 2011, o 02:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

No skoro tak to jadę z materiałem dalej ^ ^'



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 8 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO