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

 
 
> Измерение браслетов и батарейки, Не получается переключать каналы АЦП...
IDE
сообщение May 3 2008, 15:52
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 5-11-07
Из: Москва
Пользователь №: 32 073



Подскажите как можно не останавливая АЦП, переключить канал? Каналов всего два, но их нужно по очереди опрашивать. Переключаю в прерываниии - не работает!


--------------------
У кого что сбоит, тот о том и говорит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
domowoj
сообщение May 3 2008, 16:20
Сообщение #2


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Канал можно переключить во время текущего преобразования,
смена канала произойдет после окончания преобразования.
При использовании диф. каналов сложнее - читайте даташит
или Евстифеева.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
defunct
сообщение May 3 2008, 19:22
Сообщение #3


кекс
******

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



Цитата(IDE @ May 3 2008, 18:52) *
Переключаю в прерываниии - не работает!

Пропускайте по одному преобразованию
Я делаю так:

CODE

#pragma vector=ADC_vect
__interrupt void AdcISRHandler(void)
{
U16 Val = ADC;
if (adcContext.DummyCycle)
{ // restart current channel
adcBeginConversion( adc_GetMuxValue( adcContext.CurrentChan ) );
adcContext.DummyCycle = FALSE;
}
else
{
U8 currChan = adcContext.CurrentChan;

adcContext.CurrentChan += 1;
if (adcContext.CurrentChan > MUX_LAST_INDEX)
{
adcContext.lock = 0;
adcContext.CurrentChan = 0;
}
else
{
adcBeginConversion( adc_GetMuxValue( adcContext.CurrentChan ) );
adcContext.DummyCycle = TRUE; // <-- чтобы игнорировать результат
}


// handle current conversion result
adcUpdateStatistics( currChan, Val );

}
}
Go to the top of the page
 
+Quote Post

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

 


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


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