[an error occurred while processing this directive] [an error occurred while processing this directive]
Исправил
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено mikes 12 марта 2002 г. 16:41
В ответ на: Ответ: отправлено mikes 12 марта 2002 г. 16:37

/* ожидает готовность ADC
сохраняет результат соотв. канала,
увеличивает счетчик опроса каналов */
void adc_done(void)
{
char cNch;
word wAdctemp1;
for ( ;(ADCSR & (1 < < ADIF))==0;) { }
wAdctemp1=ADC;
ADCSR|=(1 < < ADIF);

// пересчет результата ADC во внутренние единицы, усреднение?
// сохренение в глоб. массив
/* ..... */

// следующий канал
cAdc_current_ch++;
if (cAdc_current_ch>=6) cAdc_current_ch=0;
}

/* вызывающая ф-я: */
// 1 рабочий цикл
do
ADMUX=cAdc_current_ch;
__sleep();
ADCSR=cAdcsrinit | (1 < < ADSC);
__sleep();
adc_done();
// учитываем данные АЦП в рабочем цикле
/* мат расчеты ...... */
__disable_interrupt();
/* обновляем настройки таймеров по рез-там вычислений */
__enable intetrrupt();
while ( wWork_time < wDt );

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru