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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> mega88PA и АЦП в Free Running mode, проблема с измерениями
Fusion
сообщение Apr 21 2011, 17:27
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 19-07-06
Пользователь №: 18 920



Это я максимально разгонял АЦП.
Мне всего 7 бит надо было для индикатора 176*132.
Получилось за 13 тактов при 20мГц тактовой процессора АЦП еще не сильно врет)
Даже флаг готовности не проверял - просто считывал в цикле и добавлял нопы до 13 тактов на результат.
Вот картинка видеосигнала период 64 мкс (всего 160 точек)
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 21 2011, 23:18
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Apr 21 2011, 18:51) *
То есть, без прерываний вообще не жизнь? И работать по флагу готовности ацп религия не позволяет.

Не хочу никого обидеть, но так работать - просто глупо.

Правильных пути всего два
1 - DMA
2 - прерывание

DMA в AVR нет, остается только один правильный путь.

Free-running он на то и free-running, АЦП себе что-то преобразует, как только результат готов, АЦП дает прерывание, читаем ADC, ADIF сбрасывается сам.
Таким образом постоянно имеем актуальное значение с АЦП при практически нулевых затратах ресурса CPU.

А что имеем при работе "по флагу"?
Go to the top of the page
 
+Quote Post
hd44780
сообщение Apr 22 2011, 08:40
Сообщение #18


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

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(defunct @ Apr 22 2011, 02:18) *
А что имеем при работе "по флагу"?


Флаг готовности АЦП позволяет работать без прерываний АЦП. Например, когда надо считать АЦП в обработчике другого прерывания.

Я таким режимом иногда пользуюсь.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 22 2011, 10:46
Сообщение #19


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Apr 21 2011, 22:18) *
А что имеем при работе "по флагу"?

По флагу получается минимальное время опроса, а можно и вообще без опроса работать. В одном проекте мне понадобилось максимально быстро провести несколько серий чтений ацп, по 10 в серии, с тем, чтобы минимизировать потребление, вот код
Код
  CLKPR=0x03;                    //Fclk/8
  rxmode();                      //wake up procedure
  ADCSRA=0x80;                    //ADEN,ADATE=0,Fosc/2
  for(delay=0;delay<127;delay++) asm volatile ("nop\n\t"::);
  ADCSRA |= _BV(ADSC);                //start of conversion
  for(i=0;i<10;i++)
  {
   for(delay=0;delay<4;delay++) asm volatile ("nop\n\t"::);
   adcval +=ADCW;                    //current ADC 10-bit sample
  }
  ADCSRA=0x00;                    //disable ADC
  stbmode();                    //of the receiver
  CLKPR=0x80;                    //clkpce=1

Потребление было где-то на уровне 100 мкА от 1.8В.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

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

 


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


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