ATtiny13a - PWM bemutatása

2016-01-30

 

Az ATMega8 PWM -ről már írtam részletesebben. Az ATtiny13a-nak egyetlen 8 bites számlálója van, amihez vizont két függetleg OCR0A és OCR0B regiszter, illetve kimenet tartozik. Most az egyiket a potiról leolvasott értékkel töltjük fel, tehát a 6. lábra kötött LED fényerejét a poti tekergetésével tudjuk szabályozni. Az OCR0B regiszter tartalmát folyamatosan változtatjuk 0..255 között, majd a számlálónk 255-ről 0-ra átbillen, és a folyamat újraindul. Vagyis a LED-ünk fényereje folyamatosan növekszik, majd kihuny és ez ciklikusan ismétlődik.


/*******************************************************************************
*   Author       -  Kiraly Tibor
*                   http://www.tkiraaly.hu
*   Date         -  2016.01.30.
*   Chip         -  Atmel ATtiny13A
*   Compiler     -  avr-gcc ( WinAVR)
*
*   PWM demo
*
********************************************************************************
*   PonyProg Configuration and Security Bits (bepipalva):
*
*   CKSEL1 -, CKSEL0 P      - Internal Oscillator 9,6 MHz
*   CKDIV8 P                - Divide clock by 8
*   
*******************************************************************************/
#define F_CPU    1,2 MHZ               // orajel


#include "tkiraaly_attiny13a.h"
#include <util/delay.h>


int main( void)
{
   U8 i= 0;

   T0_PWM;
   T0_FP_1; 
   OC0A_ENABLE;
   OC0B_ENABLE;

   ADC_8BIT;                           // 8 bit felbonas
   ADC_VREF_AVCC;                      // a tap a referencia feszultseg
   ADC_IN2;                            // 2. bemenet kivalasztasa
   ADC_FREE_RUN;                       // folyamatos meres

   for(;;)
   {
      i++;  
      OCR0A= i;
      OCR0B= ADCH;
      _delay_ms( 10);
   }
}

Itt a vége, fuss el véle, legytek az én vendégeim, innen letölthetitek a programokat, miegymást összecsomagolva.