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



Teraz jest 23 sty 2026, o 13:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
 Tytuł: tryb fast PWM
PostNapisane: 30 lip 2016, o 23:27 
Offline
Nowy

Dołączył(a): 30 lip 2016
Posty: 16
Pomógł: 0

Witam Was.

Dopiero zaczynam swoją przygodę z avr'ami. Zająłem się trybem PWM. Dokładniej mówiąc FAST PWM. Napisałem kod:

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


Podłączyłem diody anodą do pinów PD5 i PD6, katodą przez rezystor do masy. Wszystkie ustawienia bitów wziąłem z noty dla atmega328p. Niestety po wgraniu wsadu, diody nie świecą. Specjalnie chciałem uniknąć przerwań i zrobić analogiczny przykład jak w bluebooku z rozdziału: Sterowanie PWM (kolorowa dioda RGB). Na stronie 240 jest podobny przykład i taki opis:
Cytuj:
"Zauważ, że tutaj do inicjalizacji trybów PWM nie musimy, o ile nie mamy jakiegoś specjalnego życzenia, włączać przerwań za pomocą rejestru TIMSK, jak to miało miejsce przy ustawieniach CTC.(...) Tutaj całkowicie sprzętowo generowaniem PWM zajmuje się odpowiedni moduł mikrokontrolera"
I coś takiego chcę stworzyć, ale z niewiadomych mi powodów nie chce mój kod zadziałać.
Za wszelkie sugestie z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 03:48 
Offline
Moderator
Avatar użytkownika

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

Skorzystaj z trybu nr.3 Fast PWM a nie tak jak to zrobiłeś czyli skorzystałeś z trybu nr.7

_________________
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: 31 lip 2016, o 10:42 
Offline
Nowy

Dołączył(a): 30 lip 2016
Posty: 16
Pomógł: 0

Ok. Wyzerowałem bit WGM02 i poszło.
Teraz się tylko zastanawiam dlaczego. Z tabelki 15.8 wynika, że różnią się tylko tym że TOP przyjmuje wartość OCR0 albo 0xFF, ale nie wiem jak i kiedy w takim razie korzystać z tych dwóch trybów, jaka jest między nimi różnica w działaniu? Mój angielski niestety też nie pozwala na swobodne zrozumienie całej noty :(, więc jakby ktoś mógł to wyjaśnić łopatologicznie :).



Ostatnio edytowano 31 lip 2016, o 10:58 przez matiase, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 10:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
matiase napisał(a):
Z tabelki 15.8 wynika, że różnią się tylko tym że TOP przyjmuje wartość OCR0 albo 0xFF,

Chodzi o to "tylko" - dla trybu nr.7 "górną granicą" liczenia licznika jest OCR0A; liczbą do której ma doliczyć jest OCR0B, możesz korzystać tylko z jednego PIN'u jako wyjścia.
OCR0A max - 8bit, OCR0B <= OCR0A.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 11:03 
Offline
Nowy

Dołączył(a): 30 lip 2016
Posty: 16
Pomógł: 0

Czyli na przykładzie. Ustawiam OCR0A=150. Wówczas licznik będzie zliczał nie do 255, tylko do 150. OCR0B w takim przypadku nie może przekroczyć 150? Jeśli tak, to bez sensu, bo od razu mógłbym sobie sobie ustawić OCR0A <150 i na to samo by wyszło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 lip 2016, o 11:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

witam,
Ustawiając OCR0A w trybie 3, regulujesz wypełnienie.- częstotliwość stała bo zlicza do 255.
Ustawiając OCR0A w trybie 7, regulujesz częstotliwość.- bo zlicza do OCR0A.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2016, o 06:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
matiase napisał(a):
Jeśli tak, to bez sensu,

...to napisz do ATMEL'a :) - w trybie "3" masz tylko możliwość płynnego ustawiania wypełnienia (OCR0A) przy ograniczonym wyborze "nośnej" uwarunkowanej F_CPU i preskalerem; w trybie "7" możesz ustawić tak częstotliwość (OCR0A) jak i wypełnienie (OCR0B)- może i bez sensu, ale czasem się przydaje ;)

Pozdr.



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