роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  

Работа с АЦП на микроконтроллере 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
	}
}

Мой робот Wiki

Открытое информационное пространство по робототехнике, электронике, программированию микроконтроллеров, в рамках которого любой участник может добавлять или редактировать материалы сайта.

  1. Проекты
  2. Статьи
  3. Библиотека кодов
  4. Компоненты
  5. Эксперименты
  6. Советы и хитрости