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



Teraz jest 29 mar 2024, o 10:06


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
 Tytuł: PWM
PostNapisane: 14 gru 2011, o 18:06 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

Witam
Mam problem z PWM na Atemga8 a dokladnie z OCR1A i OCR1B. Chcialem zrobic sterowanie dioda RGB. Dioda ma wspólny +
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: PWM
PostNapisane: 14 gru 2011, o 20:42 
Offline
Moderator
Avatar użytkownika

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

Kolega już wcześniej w innym temacie miał problem zdaje się (jak pamiętam) z wyborem rejestrów do ustawień Timera.

Tutaj niestety jest jakiś koszmar przy ustawieniach Timera1 :(

A sam kod, żeby był czytelniejszy nawet dla tych którym się zadaje pytanie powinien być zaopatrzony w komentarze ale nie tak ubogie jak tutaj. Widział kolega jakie ja robiłem komentarze w książce albo na płycie DVD ?

One wcale nie były dlatego, że do książki tylko - ja na co dzień takie komentarze robię w swoich programach

Że już nie wspomnę, że gdyby kolega sobie opisał co robi np każda z tych trzech linijek to już sam by może doszedł gdzie leżą giga-babole ;)

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


albo te trzy linijki:

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

_________________
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  
 Tytuł: Re: PWM
PostNapisane: 14 gru 2011, o 23:14 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

Ok. juz chyba wiem gdzie robilem blad, lekko poprawiony kod. Musze jeszcze dojsc co jest nie tam a OCR1A bo nie dziala, ale to jutro. :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: PWM
PostNapisane: 14 gru 2011, o 23:35 
Offline
Moderator
Avatar użytkownika

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

O! no proszę jaką zbawienną rolę odgrywają komentarze dobre w programie ;) teraz już kolega rozumie dlaczego to jest nieodłączna część pisania poprawnych programów w C ? ;)

A teraz też widać błąd

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


nie ma czegoś takiego jak Timer1A i Timer1B ;) jest tylko jeden sprzętowy Timer1 - natomiast posiada dwa kanały PWM. Co oznacza że musisz wybrać tryb Fast PWM - za pomocą bitów WGM dla całego timera1 i to wszystko. A ty sobie wymyśliłeś że dwa bity wgm są jakby dla jakiegoś tajemniczego timera1a i timera1b

w efekcie ustawiłeś wszystkie bity WGM - spójrz sobie więc w tabelę trybów i zastanów się jaki tryb pracy timera1 wybrałeś gdy ustawiłeś aż 4 bity ? ;)

Powinieneś wybrać inny tryb - tyle podpowiem na razie ;)

_________________
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  
 Tytuł: Re: PWM
PostNapisane: 15 gru 2011, o 16:11 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

A już miałem pisać bo nie chciało się kasować po przepełnienie, ale doszedłem do tego, że ustawiałem 10-bit'owy, a nie 8-bit'owy tryb PWM ;) Teraz po poprawkach i poprawnym działaniu pokazuje kod (teraz już wiem, gdzie robiłem błędy w ustawieniach): :D
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dzięki :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: PWM
PostNapisane: 15 gru 2011, o 16:50 
Offline
Moderator
Avatar użytkownika

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

nadal masz błędy :(

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


po co te ustawienia dla fantomowego timera1 ? ;)
poza tym znowu trzaskasz bity WGM po rejestrze TCCR1B w którym ich nie ma. Już je wcześniej ustawiłeś i w poprawnym rejestrze TCCR1A

druga linijka - tez bity COM1Ax oraz COM1Bx możesz ustawić także w jednej linicje wyżej

a powielenie linii z ustawieniem preskalera to już totalne nieporozumienie, tzn wydaje mi się że ty cały czas źle coś czujesz - że tam się jakieś dwa oddzielne timery ustawia i przez to błąd myślowy robisz poważny\

wystarczy tak:


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


Nie ma czegoś takiego jak oddzielne ustawienia trybu pracy Timera1 dla kanału A i kanału B jak ty to usilnie chcesz zrobić. Ustawia się JEDEN tryb pracy dla całego Timera1 ..... rozumiesz ?

A za pomocą pozostałych bitów ew włączasz i wyłączasz kanały

_________________
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  
 Tytuł: Re: PWM
PostNapisane: 15 gru 2011, o 17:14 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

Aha. No bo jest tak jak piszesz ja to traktowałem jako osobne Timery (myliło mnie OCR1A i OCR1B). Teraz rozumiem, że jeżeli ustawiamy przy danym kanale to zmienia się w całym TIMER1 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: PWM
PostNapisane: 15 gru 2011, o 17:43 
Offline
Moderator
Avatar użytkownika

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

Timer1 jest tylko jeden, a przecież masz poszczególne bity odpowiedzialne za kanał A (COM1A1, COM1A0) oraz za kanał B (COM1B1, COM1B0)

i to wszystko panie kochany ;)

Wszystkie pozostałe bity są wspólne dla całego Timera1 , a że jest ich tyle że nie zmieściłyby się w jednym bajcie no to rozłożono je do dwóch rejestrów: TCCR1A praz TCCR1B - tyle że te literki nie mają nic wspólnego z kanałami PWM, ot po prostu kolejne rejestry, Potem mógłby być TCCR1C itd

_________________
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  
 Tytuł: Re: PWM
PostNapisane: 15 gru 2011, o 18:22 
Offline
Użytkownik

Dołączył(a): 05 lis 2011
Posty: 81
Pomógł: 0

no teraz to już rozumiem :D



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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