[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
В одиночном режиме у меня тоже все работало отлично.
Проблемы начались при опросе каналов и утяжелении
обработчиков прерываний
без двух __sleep() в начале цикла жутко глючит.
E-mail:
info@telesys.ru
====================================================
/* ожидает готовность ADC
сохраняет результат соотв. канала,
увеличивает счетчик опроса каналов */
void adc_done(void)
{
word wAdctemp1;
for ( ;(ADCSR & (1<
ADCSR|=(1<
// сохренение в глоб. массив
/* ..... */
// следующий канал
cAdc_current_ch++;
if (cAdc_current_ch>=6) cAdc_current_ch=0;
}
/* вызывающая ф-я: */
// 1 рабочий цикл
do
ADMUX=cAdc_current_ch;
__sleep();
ADCSR=cAdcsrinit | (1<
adc_done();
// учитываем данные АЦП в рабочем цикле
/* мат расчеты ...... */
__disable_interrupt();
/* обновляем настройки таймеров по рез-там вычислений */
__enable intetrrupt();
while ( wWork_time < wDt );
====================================================
Ответы