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



Teraz jest 29 mar 2024, o 00:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 26 wrz 2012, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Witam,
Mam diodę podpiętą do PD6. (steruje nią tranzystor 2n2222)

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

To świeci pełną mocną

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

To nie świeci w ogóle

Cacy..
Przechodzimy do PWM i tu zonk:

PWM mam skonfigurowane 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 wiem jak skonfigurować ten tryb FAST PWM (są 2?)
Obrazek

No i jak wpiszę
OCR0A=255; to świeci maksymalnie
natomiast:
OCR0A=0; to świeci lekko(a chcę żeby w ogóle nie świeciła)

Co robię źle?



Ostatnio edytowano 26 wrz 2012, o 21:39 przez xamrex, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 21:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Podłącz na odwrót diodę (pamiętając oczywiście o zachowaniu odpowiedniej biegunowości zasilania względem odwrotnej polaryzacji diody) do tego pinu i wtedy gdy OCRx=0 będzie dioda świecić max, a gdy OCRx=255, dioda nie będzie świecić.
Przyczyną są tutaj szpilki glitch.



Ostatnio edytowano 26 wrz 2012, o 21:38 przez Wrangler, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 21:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Odłączenie diody na odwrót można zrobić przez rejestry..
Problemem jest to, że przy wartości 0 dalej świeci słabo, a nie powinien w ogóle!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 21:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Zrób to, co napisałem i sprawdź efekt.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 21:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Diody na odwrót nie połączę bo już jest na płytce.
I jest sterowana przez tranzystor

Schemat:
Obrazek

------------------------ [ Dodano po: 3 minutach ]

Zmiana z trybu FAST PWM na Phase corcet dała efekt.
Przy 0 dioda nie świeci.

Mam tylko pytanko, czym różni się tryb Phase corect ten 1sze od piątego??
Tym TOP, ale co to jest?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 21:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Dziwne, że zamiana fazy przy pomocy bitów nie dała efektu.. a powinna..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 22:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Ale o czym ty piszesz??

Przy fastPwm nie chciało działać (Dioda nadal świeciła przy OCR0A=0;

Natomiast jak zmieniłem na tryb PWM Phase corect, to działa elegencko..

Mam prośbę gdyby ktoś mógł mi tylko wytłumaczyć czym się różnią te 2 tryby Phase corect (tryb 1 i 5) z obrazka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 22:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Przy fastPWM zmień tryb z 7-ego na 3-ci i będzię ok.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 22:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Czym się różnią tryby? A no wartością kończącą zliczanie timera. Masz jak byk w tabelce wartość TOP dla jednego trybu jest to wartość stała - 255, a dla drugiego trybu - wartość pobierana z rejestru..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 22:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Malutki_27 napisał(a):
Przy fastPWM zmień tryb z 7-ego na 3-ci i będzię ok.

Próbowałem ale bez skutku.
Musi być pwm with phase



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Pokaż cały fragment kodu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2012, o 23:33 
Offline
Moderator
Avatar użytkownika

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

Malutki_27 napisał(a):
Przy fastPWM zmień tryb z 7-ego na 3-ci i będzię ok.


Ja na prawdę się zastanawiam jak to jest? ;)

Ktoś zaczyna pierwszą przygodę z PWM. Ma do wyboru po kolei jakieś możliwości .... Okazuje się, że są dwa tryby Fast PWM. Ja tam zwykle wybrałbym (nawet nie wiedząc o co chodzi) pierwszy z brzegu. Ale niektórzy wybierają (nie wiem dlaczego) ten drugi. Co gorsze nawet nie próbują sprawdzić tego pierwszego a przez to poznać różnic pomiędzy jednym a drugim. Dlaczego ? .... zawsze sobie zadaję to pytanie

sorki za to filozofowanie że tak powiem, ale spójrz xarmex na dalsze kolumny tej tabeli i spróbuj dostrzec różnice pomiędzy trybem nr.7 i trybem nr.3 .... Jak znajdziesz różnicę to jeszcze raz pomyśl jak działa PWM, od czego zależy jego regulacja (od jakiego rejestru dokładniej) .... i spróbuj sobie na początek odpowiedzieć dlaczego jeden z tych trybów tobie działa a drugi nie (bo jak zechcesz sprawdzić obydwa to okaże się że jeden będzie działał jak pisze ci wyżej kolega Malutki_27.

------------------------ [ Dodano po: kilkunastu sekundach ]

xamrex napisał(a):
Musi być pwm with phase


Może - panie kochany - może....

ale nie musi.

------------------------ [ Dodano po: 36 minutach ]

Podpowiem na wszelki wypadek, że tryb nr.7 ma więcej wspólnego z CTC niż PWM (ale o tym jest wzmianka w nocie PDF) ....


Cytuj:
Setting the OCR2A equal to MAX will result in a constantly high or low output (depending on the polarity of the output set by the COM2A1:0 bits.)

A frequency (with 50% duty cycle) waveform output in fast PWM mode can be achieved by setting
OC2x to toggle its logical level on each compare match (COM2x1:0 = 1). The waveform
generated will have a maximum frequency of foc2 = fclk_I/O/2 when OCR2A is set to zero. This feature
is similar to the OC2A toggle in CTC mode, except the double buffer feature of the Output
Compare unit is enabled in the fast PWM mode.


czyli wynika z tego (i z opisu pod tabelką bitów COMxn dla Fast PWM, że w tym przypadku porównywanie nie jest wykonywane - mamy zatem czysty jakby tryb CTC, ale ....

.... ale jest zmiana w OCRxA jest podwójnie buforowana, czyli np w CTC jeśli zmienisz OCRx to od razu zmieni się okres - a zatem jeden przejściowy okres w trakcie przestawiania może być że tak powiem wadliwy

za to w tym MODE 7 mamy taką sytuację, że jeśli zmienimy OCRx to nie ma to od razu wpływu na stan wyjścia OCx i przebiegu na nim a kiedy ? Dopiero wtedy gdy następuje UPDATE w tabelce - w naszym przypadku widać tam BOTTOM, czyli dopiero przy zmianie (zakończeniu okresu) .... dzięki czemu dopiero ładnie kolejny okres będzie równy ...

jakie może być tego zastosowanie praktyczne ? kiedy użyć takiego "sztucznego" CTC ? zamiast typowego CTC ? - no nie podam teraz tak z głowy - bo sam jeszcze nie trafiłem na specjalną potrzebę aby z tej właściwości skorzystać. Ale warto wiedzieć że taka jest.

_________________
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: 27 wrz 2012, o 10:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Przy ustawieniu trybu trzeciego
TCCR0A |=(1<<WGM01)|(1<<WGM00);

I wartości OCR0A=0; dioda dalej świeci lekko :/

Problemu nie ma tak jak pisałem w trybie Phase corect (niezależnie czy wybiorę piąty, czy pierwszy tryb)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2012, o 10:22 
Offline
Moderator
Avatar użytkownika

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

xamrex napisał(a):
Przy ustawieniu trybu trzeciego
TCCR0A |=(1<<WGM01)|(1<<WGM00);

I wartości OCR0A=0; dioda dalej świeci lekko :/



Przecież w książce to dokładnie opisuję - dlaczego dioda dalej lekko świeci. Warto przeczytać skąd to się bierze dla lepszego zrozumienia trybów PWM i umiejętności poradzenia sobie z takimi zjawiskami. W PDF też jest to dokładnie opisane.

W PDF jest i w mojej książce wspominam o czymś takim jak GLITCH ... (szpilki) które powstają gdy timer się przepełnia, wywołane jest do przez (single slope) czyli przez operację na jednym zboczu narastającym timera w przeciwieństwie do Phase correcet, gdzie w PWM bierze udział i narastające zbocze gdy wartość timera rośnie i opadające gdy maleje od 255 do 0

czy to oznacza że przy Fast PWM nie można się pozbyć przy diodzie LED tego efektu pomimo że są te Glitch'e (szpilki)
???

eeeeh szkoda że nie doczytasz dokładniej w książce - a piszę tam że nawet bez przelutowywania diody odwrotnie wystarczy zmienić fazę przebiegu PWM za pomocą bitów COMxn .... I wtedy szpilki (glitche) nadal będą ale nie w momencie gdy dioda ma być wygaszona lecz w momencie gdy jest zapalona na maxa. Efekt końcowy będzie taki że oko w ogóle nie zauważy tych szpilek - w żaden sposób - podczas gdy świeci na maxa. Sprawdź ;)

zrozumiesz lepiej działanie PWM i poznasz co to jest (inverting mode) oraz (non inverting mode) ustawiany za pomocą bitów COMxn

ale oczywiście nic nie stoi na przeszkodzie aby korzystać z Phase correct PWM - jedyne o co mi chodzi to fakt że nie prawdą jest iż nie da się tego samego efektu uzyskać z Fast PWM.

------------------------ [ Dodano po: 1 minucie ]

xamrex napisał(a):
Problemu nie ma tak jak pisałem w trybie Phase corect (niezależnie czy wybiorę piąty, czy pierwszy tryb)


reasumując problemu też nie ma w trybie Fast PWM ale dzięki temu byś zrozumiał jednak różnicę pomiędzy trybem 3 i 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: 27 wrz 2012, o 10:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Dzięki za pomoc :)

Książkę przeczytałem, ale to było dawno.. bardzo dawno temu i już zapomniałem rozdział o PWM, a wczoraj nie miałem książki 'na stanie' i nie byłem w stanie w nią zerknąć ;)

Tak czy siak, dzięki za pomoc :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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