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



Teraz jest 15 maja 2026, o 03:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 24 lut 2018, o 17:07 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 123
Pomógł: 0

Jak w tytule czy jest możliwe aby sygnal PWM z Timera0 był generowany na pinie OC0B

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



Ale wyjscie zachowuje sie dziwnie bo przy OCR0B=0 czyli PWM=0 generuje mi na wyjsciu waskie spilki.

_________________
http://mojekonstrukcje.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2018, o 17:56 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

W trybie fast PWM to naturalne:
Atmel/Microchip napisał(a):
The extreme values for the OCR1x Register represents special cases when generating a PWM waveform
output in the fast PWM mode. If the OCR1x is set equal to BOTTOM (0x0000) the output will be a narrow
spike for each TOP+1 timer clock cycle.
Setting the OCR1x equal to TOP will result in a constant high or
low output (depending on the polarity of the output set by the COM1x1:0 bits.)


Można tego uniknąć stosując negację wyjścia OC0B (odpowiednio modyfikując schemat i/lub program), ale wtedy nie da się osiągnąć pełnych 100%. Można też ewentualnie użyć innego trybu, który może nie wygeneruje tak dużej częstotliwości PWM, jak w trybie fast, ale jak ktoś stosuje preskaler 64, to chyba raczej mu na tym nie zależy ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2018, o 18:40 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 123
Pomógł: 0

Dziwne bo dla wyjsc OCR1A i OCR1B dla timera 1 wszystko dziala prawidlowo i Pwm=0 daje calkowite wylaczenie.To mnie zastanawia

_________________
http://mojekonstrukcje.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2018, o 19:29 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

TomekTomek55 napisał(a):
Dziwne bo dla wyjsc OCR1A i OCR1B dla timera 1 wszystko dziala prawidlowo i Pwm=0 daje calkowite wylaczenie.

Twierdzisz, że jest inaczej, niż producent podaje w nocie katalogowej?
Chyba, że używasz tam innego trybu pracy PWM (np. Phase Correct), albo masz inaczej ustawione wyjścia (zanegowane), czyli inaczej ustawione bity COM1x1:COM1x0.

Nie wiem, czy zauważyłeś, ale omyłkowo przedstawiłem opis właśnie dla trybu fast PWM timera 1 (czyli 16-bitowego, na co wskazuje wspomniany tam rejestr OCR1x). Nie ma to jednak większego znaczenia, bo zasada jest ta sama zarówno dla 8- jak i dla 16-bitowych. Jest jedynie taka możliwość, że przy 16-bitowym masz ustawiony mniejszy preskaler, przez co impuls jest krótszy i go po prostu nie zauważyłeś.

Ewentualnie może używasz jakiegoś nowego mikrokontrolera Microchipa, w którym obowiązują inne zasady (nie napisałeś, o jaki mikrokontroler chodzi, więc właściwie nie wiadomo :()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lut 2018, o 20:39 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 123
Pomógł: 0

Hmm
No własnie mam taka konfiguracje jak wklejilem w 1 poscie.Moze takm jest wlasnie blad skoro twierdzisz ze to jest dla timera 1.

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

_________________
http://mojekonstrukcje.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2018, o 10:10 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Nadal nie napisałeś, o jaki mikrokontroler chodzi, więc trudno się odnieść do tego fragmentu kodu, który przedstawiłeś.

Mam wrażenie, że nie zrozumiałeś dobrze tego co napisałem. Ty twierdzisz:
TomekTomek55 napisał(a):
Dziwne bo dla wyjsc OCR1A i OCR1B dla timera 1 wszystko dziala prawidlowo i Pwm=0 daje calkowite wylaczenie.

a ja twierdzę, że to nieprawda.

Niezależnie od tego, czy użyjesz timera 0 (8-bitowego), czy timera 1 (16-bitowego), przy ustawieniu trybu fast PWM i pinu wyjściowego na "non-inverting" będziesz miał ten pik napięcia dla PWM=0%.

Jeśli chcesz osiągnąć efekt taki, że przy PWM=0% na wyjściu będzie ciągły stan niski, a przy PWM=100% - ciągły stan wysoki, użyj innego trybu, np. Phase Correct.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 17 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