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



Teraz jest 29 gru 2024, o 17:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 3 paź 2023, o 20:00 
Offline
Nowy

Dołączył(a): 10 mar 2020
Posty: 17
Pomógł: 0

Witam forumowiczów
Postaram się problem szybko opisać. Chcę za pomocą Timera1 16bitowego w Atmedze 32 skonfigurować np. Fast PWM o danej częstotliwości i zobaczyć jego przebieg na oscyloskopie. Częstotliwość w tej chwili jest obojętna bo i tak jakieś bzdury pokazują na oscyloskopie. Zamieszczam poniżej kod konfiguracji jaką teraz zrobiłem
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Procek taktowany na 8MHz
Efekt na oscyloskopie jest taki jak na screenie załączonym
Obrazek
Tutaj w kodzie ustawione jest 100Hz ale testowałem na różnych częstotliwościach posługując się wzorem: F_CPU / (F_PWM * preskaler) - 1
Oscyloskop podpinam pod pin PD5 - OC1A. Efekt praktycznie jest ten sam przy różnych wartościach OCR1A. Może o czymś nie wiem i nie można takiego przebiegu wyświetlić z Timera1 ale z Timera0 8bit wszystko było dobrze. Proszę o pomoc, korektę kodu, wskazówki etc. Z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2023, o 09:57 
Offline
Nowy

Dołączył(a): 10 mar 2020
Posty: 17
Pomógł: 0

ord napisał(a):
W tym trybie OCR1A pełni funkcję rejestru określającego TOP licznika jest więc oczywistym, że użyteczny przebieg PWM można otrzymać wyłącznie na kanale B licznika.

Czyli jak bity WGM13 i WGM12 w jakimś trybie znajdują się w TCCR1B to ten PWM trzeba szukać na kanale B?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2023, o 13:26 
Offline
Użytkownik

Dołączył(a): 13 lut 2012
Posty: 173
Pomógł: 10

Jeśli koniecznie chcesz używać PD5 to zapewne jest szansa przez użycie ICR1 zamiast OCR1A (chociaż sam tego nie sprawdzałem).
Strona 77 z datasheet dla ATmega8
"The TOP value, or maximum Timer/Counter value, can in some modes of operation be defined
by either the OCR1A Register, the ICR1 Register, or by a set of fixed values. When using
OCR1A as TOP value in a PWM mode, the OCR1A Register can not be used for generating a
PWM output. However, the TOP value will in this case be double buffered allowing the TOP
value to be changed in run time. If a fixed TOP value is required, the ICR1 Register can be used
as an alternative, freeing the OCR1A to be used as PWM output"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2023, o 21:50 
Offline
Moderator
Avatar użytkownika

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

bluzman napisał(a):
ord napisał(a):
W tym trybie OCR1A pełni funkcję rejestru określającego TOP licznika jest więc oczywistym, że użyteczny przebieg PWM można otrzymać wyłącznie na kanale B licznika.

Czyli jak bity WGM13 i WGM12 w jakimś trybie znajdują się w TCCR1B to ten PWM trzeba szukać na kanale B?


Ja bym może zadał tobie pytanie - czy to są twoje pierwsze zabawy z PWM i robisz test żeby sobie na to popatrzeć po prostu ? Bo jeśli tak - to proponuję skorzystać z prostych trybów:

Fast PWM, 8-bit
Fast PWM, 9-bit

albo

Fast PWM, 10-bit

wtedy będziesz sobie ładnie regulował wypełnienie OCR1A

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

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