adc - считывание значения напряжения потенциометра

В примере adc демонстрируется использование вспомогательного класса потенциометра Pot (файл misc/pot.h) для управления временем задержки мигающего светодиода. Исходный код примера:

/**

* adc.cpp

*

* VE_AVR_Library ADC Control LED Blinking Example.

*

* Created on: 11.05.2012

* Author: andrey

*/

#include <ve_avr.h>

#include <misc/ve_led.h>

#include <misc/ve_pot.h>


#define LED DEV_GPIOB, 7 // Светодиод LED подключен к выводу PB7 микроконтроллера

#define LED_POT_CHANNEL AnalogMux::CH_ADC0 // Потенциометр LED_POT_CHANNEL подключен к выводу ADC0 микроконтроллера


int main()

{

DEV_POWER.adcOn(); // Включить питание АЦП

led::setup(LED); // Предварительная настройка вывода светодиода LED

Pot pot;

pot.setup(LED_POT_CHANNEL); // Предварительная настройка канала АЦП LED_POT_CHANNEL

while(true) {

uint16_t delay = pot.getValue() / 50; // Рассчёт времени задержки в зависимости от

// текущего значения напряжения на потенциометре.

while(delay--) // Чем выше напряжение на потенциометре, тем дольше

led::off(LED, 50); // выключен светодиод LED.

led::on(LED, 50); // В паузах по 50 мс светодиод LED всё-таки светится.

}

}

Следующий пример: timer - прерывания от таймера.

Предыдущий пример: button - обработка нажатий кнопки.

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

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