logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA 8 i PWM - jak na jednym Timerze uruchamiać przerwanie co sekundę

Mad Bekon 30 Mar 2005 19:20 2269 1
REKLAMA
  • #1 1361966
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Problemik z PWM i Przerwaniem Timera.

    Czy możliwe jest żeby PWM sobie działał, a Timer generował normalne przerwanie?

    Z tego za zauważyłem to nie bardzo.

    
    TCCR1A =  (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0); //8bit PWM, phase correct
    TCCR1B = (1<<CS12) | (1<<WGM12);
    TCNT1H = 0x57;
    TCNT1L = 0x41;
    OCR1A = 220 ;
    TIMSK = 0x00;


    Gdy jest tak, działa mi dobrze regulacja PWM, i wentylator się steruje płynnie poprzez zmiene OCR1A, ale jak widać w TIMSK=0x04; Przerwanie Timera jest wylaczone.

    Gdy zmienie na TIMSK=0x04;
    Przerwanie się uruchamia, ale nie co 1Hz, tylko wiele szybciej za sprawą TCCR1A = (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0);
    I PWM nie działa jak powinien.

    Czy jest możliwe, a jeśli tak, to w jaki sposób na jednym Timerze uruchamiać przerwanie co Sekundę i regulować obroty wiatraka przez PWM podpięte do L293. Napięcie regulacji wiatraka (5V-12V). Kwarc 11.0592MHz
  • REKLAMA
  • #2 2660763
    smeerfek
    Poziom 11  
    Posty: 6
    (nie mam w tym momencie czasu aby przyjrzeć się temu bliżej, postaram się odpowiedzieć następnym razem pełniej)
    Masz napisane:

    TCCR1A = (1<<WGM10) | (1<<COM1A1) | (1<<COM1A0); //8bit PWM, phase correct
    TCCR1B = (1<<CS12) | (1<<WGM12);


    8-bit PWM, phase correct ma wlaczone tylko WGM10.
    Tak jak Ty masz WGMy ustawione to wynika, że jest to 8-bit fast PWM (WGM10 i WGM12). Moze pokombinuj coś z tym ....

    Pozdrawiam.
REKLAMA