АЦП на ATtyni13

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Frezerok
Открыл глаза
Сообщения: 67
Зарегистрирован: Ср мар 17, 2010 21:21:48

АЦП на ATtyni13

Сообщение Frezerok »

Всем доброго дня.
Потихоньку пытаюсь изучать МК, всякие мигания лампочек я изучил. с портами работать тоже научился.
Теперь пытаюсь освоить АЦП, но не получается. Прогу пишу в AVRStudio 5, отрабатываю в Proteus 7.7.
Вот код:

Код: Выделить всё

#define F_CPU 1000000UL
#include <avr/io.h>


int main(void)
{
   DDRB = 0xFF;
   PORTB = 0x00; 
   

   ADCSRA |= (1 << ADEN)|(1 << ADPS1)|(1 << ADPS0);
   ADMUX |= (0 << REFS0)|(1 < MUX0)|(1 << MUX1);
   
	while(1)
    {
        unsigned int u;
		ADCSRA |= (1 << ADSC); 
		while ((ADCSRA&(1 << ADIF))== 0);
		u = (ADCL|ADCH << 8);
		
		if (u > 128)               
			{PORTB = 0x01;}         
		else 
			{PORTB = 0x00;}
    }
}
Не могу понять почему не работает. Прошу помочь.
Заранее спасибо.
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: АЦП на ATtyni13

Сообщение Мастер Ломастер »

во-первых, не надо манипуляций с ADCL и ADCH, используйте ADC и все
во-вторых, не здесь ли собака порылась:
Frezerok писал(а):ADMUX |= (0 << REFS0)|(1 < MUX0)|(1 << MUX1);
чтобы меньше ошибаться подобным образом, используйте макрос _BV():
Frezerok писал(а):ADMUX |= _BV(REFS0) | _BV(MUX0) | _BV(MUX1);
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: АЦП на ATtyni13

Сообщение ploop »

И используйте тег code в сообщении, а то иногда так получается:
Изображение
Frezerok
Открыл глаза
Сообщения: 67
Зарегистрирован: Ср мар 17, 2010 21:21:48

Re: АЦП на ATtyni13

Сообщение Frezerok »

Спасибо. Видимо совсем ослеп.
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»