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

 
 
> mega88PA и АЦП в Free Running mode, проблема с измерениями
arttab
сообщение Apr 18 2011, 04:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



в режиме одиночного преобразования АЦП выдает нормальные значения, а после переделки проги на постоянное преобразование (пока не запретишь) получаю FF. прерывания АЦП выкл.

опора АЦП от встроенного в мк опорника 1.1В

делаю так:

__disable_interrupt();

установки АЦП:
ADMUX = (1<<REFS0)|(1<<REFS1)|(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3)|(1<<ADLAR);
ADCSRA =(1<<ADEN)|(1<<ADPS0)|(0<<ADPS1)|(0<<ADPS2); //|(1<<ADATE) //2for1MHz 001
ADCSRB = (0<<ACME)&(0<<ADTS2)&(0<<ADTS1)&(0<<ADTS0);

задержка на устаканивание:
for (unsigned char z=0; z<10; z++){
__delay_cycles(350000/8/10*F_MHZ); //
WATCHDOG_RESET;}


SETBIT(DDRB, 6); // для отладки ножкой буду дрыгать

SETBIT (ADCSRA, _ADC_Start); // запускаю АЦП

ADC_CONTROL_auto(); // Жду результата
//
unsigned char ADC_CONTROL_auto(void)
{
SETBIT(PORTB, 6); // Çàïóñê ÀÖ ïðåîáðàçîâàíèÿ;
while( !TSTBIT(ADCSRA, _ADC_Flag)); // Îæèäàíèå ôëàãà ïðåðûâàíèÿ - îêîí÷àíèÿ ïðåîáðàçîâàíèÿ;
CLRBIT(PORTB, 6);
return ADCH; // ×òåíèå ðåçóëüòàòà ïðåîáðàçîâàíèÿ;
}
//

// И делаю выборку значеий
for (char j = 0; j <_NUMB_OF_MEG; j++)
{
res_of_meg[j] = ADC_CONTROL_auto(); // Ìàññèâ èçìåðåííîãî çíà÷åíèÿ êàëèáðîâêè //
}


выключаю АЦП
ADCSRA = 0<<ADEN;


переделывал на одиночные режим работы - все ок. сигнал меняю - отчеты идут нормальные, а так FF только


есть errata но она при вкл. компоратора (я его использую в др. части проги), а я перед каждым использованием АЦП конфигурю АЦП.

что у меня с "лыжами"? почему не едут? wacko.gif


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- - Сергей Борщ   QUOTE (arttab @ Apr 18 2011, 07:38) преры...   Apr 18 2011, 08:51
- - arttab   спасибо. завтра попробую.   Apr 18 2011, 09:52
- - hd44780   CvAVR предлагает вот такой код: // Read the AD co...   Apr 18 2011, 10:22
- - arttab   вы уверены что это free runтing режим, а не одиноч...   Apr 20 2011, 04:22
- - Палыч   Цитата(arttab @ Apr 20 2011, 08:22) в рус...   Apr 20 2011, 05:08
- - arttab   получилось при такой инициализации: void ADC_init...   Apr 20 2011, 07:56
|- - Сергей Борщ   QUOTE (arttab @ Apr 20 2011, 10:56) получ...   Apr 20 2011, 10:02
|- - =GM=   Цитата(arttab @ Apr 20 2011, 06:56) получ...   Apr 20 2011, 12:53
- - Index   arttab !!! ИЗВИНИ !!! что ...   Apr 20 2011, 14:45
|- - =GM=   При первом запуске попробуйте после чтения регистр...   Apr 20 2011, 16:03
- - Index   =GM= хорошо, попробую Пока выход такой .. в обраб...   Apr 20 2011, 16:21
- - Fusion   Инициализация АЦП для меги 644: Кодadcinit: ;...   Apr 20 2011, 16:46
|- - defunct   Что-то я не пойму, какой смысл использовать ADC fr...   Apr 21 2011, 14:55
|- - =GM=   То есть, без прерываний вообще не жизнь? И работат...   Apr 21 2011, 15:51
|- - defunct   Цитата(=GM= @ Apr 21 2011, 18:51) То есть...   Apr 21 2011, 23:18
|- - hd44780   Цитата(defunct @ Apr 22 2011, 02:18) А чт...   Apr 22 2011, 08:40
|- - =GM=   Цитата(defunct @ Apr 21 2011, 22:18) А чт...   Apr 22 2011, 10:46
- - Fusion   Это я максимально разгонял АЦП. Мне всего 7 бит на...   Apr 21 2011, 17:27


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

 


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


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