ATtiny13

4) PWM

Občas se může hodit i PWM řízení (například ovládání serva, nebo změna jasu LED)

ATtiny13 má v sobě podporu PWM zabudovanou. V katalogovém listu je tato funkce popsaná na mnoha listech, ale pro ten nejjednodušší základ by měl stačit tento příklad na několik řádek kódu:

// PWM vystup

void setup()
  {
     DDRB  = 0b00000001;       // nastaveni smeru signalu na portu B0 na vystup
     
     TCCR0A = 0b11000011;      // rezim FAST PWM; vystup se nastavi do '1' pri dosazeni pozadovaneho cisla
     TCCR0B = 0b00000101;      // FAST PWM, delic základní frekvence na 36Hz (pro prescaler='101b')
     OCR0A  = 127;             // hodnota, se kterou se citac porovnava (0 az 255) (127 = 50%; 64=75% ; 192=25%)

    
  }

void loop()
  {
    // tady muze nezavisle bezet nejaky kod

  }


          

Výstup signálu na pinu PB0 pak při různých nastaveních registru OCR0A a prescaleru vypadal takto:


OCR0A = 127 (=50%)
prescaler = '101b' = clk/1024 = 36Hz 
  

  

        
OCR0A = 64 (=75%)
prescaler = '100b' = clk/256 = 146Hz 
   

  


OCR0A = 192 (=25%)
prescaler = '011b' = clk/64 = 585Hz 
    

OCR0A = 26 (=90%)
prescaler = '001b' = clk= 36kHz 
    

 

 

 


úvodní strana webu AstroMiK.org

poslední úprava stránky 18.8.2015