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

[ATMEGA2560][BASCOM]Kilka kanałów PWM

adambehnke 14 Lut 2010 21:46 3575 2
REKLAMA
  • #1 7695289
    adambehnke
    Poziom 24  
    Witam
    Mam zrealizowany w A2560 jak na razie jeden kanał PWM.

    Zrobiłem tak:
    Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       'regulacja jasności pwm1a 
    
    


    i dalej ustalam sobie poziom (jasności LCD) w zakresie 0-254 i przepisuję tak:

    
    
    Pwm1a = wartosc  
    



    Teraz muszę dorobić jeden lub dwa kolejne takie kanały ale mam problem jak tego dokonać.

    Pwm3a = wartosc2  
    nie działa.
    Czytałem że trzeba użyć ( na M8 ) drugiego timera w taki sposób:

    Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1 


    ale nie działa mi to.
    Nie mam zbyt wiele wolnych pinów procka ale kilka OC3a ,OC3b ,OC3c ,OC0b , Oc4a , Oc4b , Oc4c mam .
    Mam zajęte tylko Oc1a , Oc1b , Oc1c , Oc2a ,Oc2b .

    Czy timer2 jest obowiązkowy (szkoda mi go na obecnym etapie i do pwm).Ma ktoś może jakieś pomysły?

    Bardzo bym nie chciał bawić się w programowy pwm (zbyt duży jest program i będzie jeszcze większy).
  • REKLAMA
  • Pomocny post
    #2 7823192
    WOBI
    Poziom 19  
    Jak sama nazwa wskazuje przy konfiguracji Timer1 masz compareA i compareB. Czyli masz dwa rejestry porowniania które zmieniaja odpowiednie nogi procesora czyli pwm dla tego tajmera są dwa A i B. Noga procka OC1a pierwszy PWM (kanał) i OC1B drugi.

    Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       'regulacja jasności pwm1a


    więc zmieniasz na jednym kanale

     pmw1a = watrosc1 


    drugi kanał

     pwm1b = wartosc2 


    jeśli byłby 3 OC to

     pwm1c = wartosc3 


    i masz dwa kanały niezależne dla timera1. Procesory z rodziny AVR maja różną liczbę timerów i rożną liczbę powiązany z nimi wyjsc OCXX np. dla ATMega128 w timerze1 i timerze3 masz po 3 wyjscia PWM. Myślę że teraz bedziesz już wiedział. Wystarczy przeczytać, zobaczyc do PDF danego procka ile ma dla danego timera powiązanych wyjść OC jedno, dwa lub trzy.

    np. dla ATMega128 i trzech pwm

     Config Timer3 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Compare C Pwm = Clear Down     


     pwm3a = wartoscX1 
    
     pwm3b = wartoscX2
    
     pwm3c = wartoscX3
    
    
REKLAMA