Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PWM (dioda RGB ). Timer 1, atmega16, zrobienie 2 PWM-ów.

30 Paź 2007 17:19 3649 10
  • Poziom 19  
    timer1 atmegi16 jest 16bitowy i da sie podobno 2 pwmy zrobic na nim..
    ktos mi podpowie? (avr-gcc)
  • Poziom 30  
    Nie trzeba nic "robić"...
    Timer1 ma dwa kanały pwm...
    Dwa rejestry sterujące wypełnieniem i dwa wyjścia przypisane do nich...
    OCR1A i OCR1B...
    Resztę proszę sobie przeczytać w dokumentacji uC...
    Rozdział "16-bit Timer/Counter1"...
  • Poziom 19  
    ok. masz racje...
    tzn wszystko sluzy do diody RGB standardowej.
    dla czerwonej rezystor 100 om,dla zielonej i niebieskiej 50om..
    a progs:
    Code:
    DDRD |=_BV(7);
    
    TCNT2=0x00;
    TCCR2=0x73;
    OCR2=120; //R - 0-255
    DDRD|=_BV(4);
    DDRD|=_BV(5);
    TCCR1A=0xF1;
    TCCR1B=0x3;
    TCNT1L=0x00;
    TCNT1H=0x00;
    OCR1AL=120; //G - 0-255
    OCR1AH=0x00;
    OCR1BL=120; //B - 0-255
    OCR1BH=0x00;   

    czy ktos widzi jakis blad ?
    tzn widze wszystkie skladowe ,niektore odcienie sie tworza,jednak nie moge utworzyc jednolitych kolorow...
    nie wiem w czym blad
  • Poziom 10  
    Szukaj a znajdziesz, a tak na poważnie, to poczytaj sobie o trybach PWM
    tez miałem taki problem ze mi sie dioda mimo podania 0 do odpowiedniego rejestru paliła leciutko. Zmiana trybu działania PWM pomogła :-)
  • Poziom 19  
    we wszystkich przypadkach wybralem PWM, Phase Correct.(8 bit)
    w kazdym razie tak mi sie wydaje
  • Poziom 10  
    chodzi o tryb liczenia liczników, przeładowanie na osiągnięciu 256 (od 0 do 256) lub przeładowanie przy 0 (liczy od 256 do 0 )
  • Poziom 27  
    oczywiście koleg apowyżej miał na myśli 255 nie 256
    Co do trybów pracy to w PWM tylko tryb fast oferuje minimalne wypełnienie =1/256 (dla 8bit timera)
    Pozostałe tryby PWM dają się ustawić na 0. A swoja drogą to chyba masz ustawioną zbyt mała częstotliwość bo przy tak małym wypełnieniu to musiałbyś potraktować LEDa sporym prądem by zauważyć świecenie.
  • Poziom 19  
    wracajac do tematu i ostatniej wiadomosci...
    Jaką najlepiej zastosowac czestotliowosc przebiegu zeby cos z tego wyswietlania bylo ?
  • Poziom 21  
    ja testuje PWM na diodach obecnie na zegarze 8Mhz i preskalerze = 1, phase correct 8bit, z tego co licze to mam częstotliwość rzędu 15kHz i jest dobrze :)
  • Poziom 19  
    no wlasnie tak sie zastanawiam ,co ci daje zastosowanie phase correct zamiast fast pwm liczacego tylko w gore,ktory jest prostszy.
    ja jakos przy nim bardziej moge 'wyobrazic' sobie przebieg.
  • Poziom 21  
    nie mam jakoś szczególnych trudności z wyobrażeniem sobie przebiegu przy phase correct, zwłaszcza jak dokumentacjie przeczytałem ... dla mnie bardziej zrozumiałe było, że timer liczy w góre, w dół, w górę, w dół ... :)

    jakiegoś konkretnego powodu dlaczego korzystam z phase correct nie ma, taki znalazłem w przykładach, najmniej bitów trzeba ustawić do niego :P, diody sie ładnie zapalają, płynnie ... gdyby nie działały pewnie poszukałbym innego rozwiązania, ale do zapoznania się z PWM mi wystarczyło. Jakiś szczególnych kryteriów co do częstotliwości tez nie miałem, zobaczymy jak to będzie w prawdziwym projekcie, może się okazać że Fast PWM będzie niezbędny :)