LEDfade - управление яркостью светодиода с помощью ШИМ

В примере LEDfade демонстрируется управление яркостью свечения светодиода с помощью ШИМ. Светодиоды подключаются к выводам OC2A и OC2B микроконтроллера.

/** 
 *  ledfade.cpp 
 * 
 *  VE_AVR_Library Timer/Counter LED Fading Using ADC Control Example. 
 * 
 *  Created on: 11.05.2012 
 *  Author: andrey 
 */ 
#include <ve_avr.h> 
#include <misc/ve_led.h> 
#include <misc/ve_pot.h>   

#define LED1             DEV_TIMER2_OCA      // Set up your own values here: PORT, PIN 
#define LED2             DEV_TIMER2_OCB      // Set up your own values here: PORT, PIN 
#define LED_POT_CHANNEL  AnalogMux::CH_ADC0  // Set up your own value here: ADC channel   

volatile bool bLedOn = false; 
uint8_t potValue;   

int main() 
{
   DEV_POWER.adcOn();
   DEV_POWER.timer2On();

   Pot pot;
   pot.setup(LED_POT_CHANNEL);
   potValue = pot.getValue() >> 2;

   DEV_TIMER2.setClockSelect(Prescaler2::Prescaler_64);
   DEV_TIMER2.setWaveGenMode(Timer2::FastPWM);
   DEV_TIMER2.setCompOutModeA(Timer2::Clear);
   DEV_TIMER2.setCompOutModeB(Timer2::Clear);

   setModeOutput(LED1);
   setModeOutput(LED2);

   while(true) {
      potValue = pot.getValue() >> 2;
      DEV_TIMER2.setOutputCompareA(potValue);
      DEV_TIMER2.setOutputCompareB(potValue);
   } 
} 

Предыдущий пример: EEPROM - чтение и запись данных в память EEPROM.

Скачать библиотеку VE_AVR.

Автор: Андрей Шаройко <vanyamboe@gmail.com>