С myROBOT

CodeLibrary: Работа с АЦП на микроконтроллере AVR



/*******************************************************************
 Title:		Работа с АЦП на микроконтроллере AVR
 Сopyright:	myROBOT, http://myrobot.ru
 Date:		апрель 2011
 Software:	AVR-GCC (WinAVR)
 Hardware:	ATmega8, 1 MHz

 Description:
 Пример демонстрирует считывание аналогового сигнала на линии ADC3
 и вывод результата на индикатор из 8-ми светодиодов, подключенных
 к порту D.
 Аналоговый сигнал можно получить, подключив фототранзистор 
 к выводу PC3.

*******************************************************************/

#include <avr/io.h>
#include <avr/delay.h>

int main (void){


// инициализация портов
DDRC=0x00;
PORTC=0b11111111;
DDRD=0xFF;
PORTD=0xFF;


	// инициализация АЦП
	ADCSR = 0b10000011; // ADEN=1 (7-й бит); ADPS2..0=011;
	ADMUX = 0b000011; // MUX4..0=ADC3 (00011);


	while(1) {

		ADCSR |= _BV(ADSC);   // запуск преобразования

		loop_until_bit_is_set(ADCSR,ADSC); // ждем, пока не 
                                                   // будет сброшен ADSC

		_delay_us(1);   // ждем обновления регистра данных

		PORTD = 1<<(ADCW/128); // выводим результат на индикатор 
                                       // из 8-ми светодиодов, 
                                       // подключенных к порту D
	}
}

Получено с http://www.myrobot.ru/wiki/index.php?n=CodeLibrary.AVRADC
Редакция от 08.12.2015 23:05