реклама на сайте
подробности

 
 
> Не работает АЦП Attiny461a в реальной схеме, в Протеусе работает.
Dimon84
сообщение Nov 3 2012, 14:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 4-08-12
Из: г.Чебоксары
Пользователь №: 73 015



АЦП в реальной выдает постоянно одно и тоже значение (0xFF) при любом напряжении на выводе ADC1.
В Протеусе все работает, а в реальной схеме нет.

Конфигурация вывода ADC1:
DDRA=0x00
PORTA=0x00

Инициализация АЦП:
Код:
ADCSRA |=(0<< ADATE); // Режим одиночного преобразования АЦП
ADCSRA |=(1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // Коэфф. деления предделителя АЦП =64
// частота преобраз.=62,5 кГц.
ADMUX |=(0<<REFS1) | (1<<REFS0)|(1<<ADLAR); // Внешний ИОН (1,23 В), подкл. к выводу
//AREF
DIDR0 |=(1<<ADC1D) |(1<<ADC2D)|(1<<AREFD); // Отключаем цифровые буферы на выводах
//считывания аналоговых сигналов (для уменьш. токопотребления)


Функция считывания данных с АЦП:
Код:
// Настройка входа для измерения напряжения
ADMUX &=~((1<<MUX5) | (1<<MUX4) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (1<<MUX0)); // Обнуляем предыдущие настройки
ADMUX |=((0<<MUX5) | (0<<MUX4) | (0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0)); // подкл. вход ADC1
ADCSRA|=(1<<ADEN); //Вкл. АЦП
ADCSRA|=(1<<ADSC); //Начать преобразование
while (!(ADCSRA &(1<<ADIF))) //Дождатся окончания преобразования
{
}
_delay_ms(100);
v=ADCL;
v=ADCH;
ADCSRA &=~(1<<ADEN); //Выкл. АЦП
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 21:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016