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.
- blink -- мигающий светодиод
- button -- обработка нажатий кнопки
- adc -- считывание значения напряжения потенциометра
- timer -- прерывания от таймера
- usart -- передача данных по последовательному порту USART
- EEPROM -- чтение и запись данных в память EEPROM
- LEDfade - управление яркостью светодиода с помощью ШИМ
Автор: Андрей Шаройко <vanyamboe@gmail.com>