Подскажите пожалуйста!
В Jtag программа останавливается на этом коде
unsigned int adc_rezult(unsigned char kanal){
unsigned char i;
unsigned int rez=0;
ADMUX=(ADMUX&(~0x1F))|kanal;
for( i=0 ; i<8 ; i++){
ADCSRA|=BIT(ADSC);
while ( !(ADCSRA & BIT(ADIF)) );// <- здесь
rez+=ADC;
}
return rez/8;
}
Причем не всегда. Может работать несколько минут.
Мк - mega16 частота 16мег. АЦП настроен так:
ADMUX=BIT(REFS1)|BIT(REFS0);//Internal 2.56V Voltage Reference with external capacitor at AREF pin
ADCSRA=BIT(ADEN)|BIT(ADPS2)|BIT(ADPS1)|BIT(ADPS0);
Ставил внутренний RC ген. На 8 мег. Работает без проблем. Но хотелось частоту повыше в устройстве есть dc/dc преобразователь. Подскажите, это из за частоты, или где-то все таки ошибся?
Сильных помех вроде нет, если измерять постоянную велечину то результат всегда одинаков.
Еще вопрос, может быть отладка останавливается при возникновении прерывания ADC?