Прошу помочь найти косяк в программе. В железе не работает , AVRStudio подвисает при попытке выйти из прерывания. Причём, аналогичное происходит и при использовании прерывания от таймера.
Код
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned char adc_data;
// Read the 8 most significant bits
// of the AD conversion result
// Place your code here
adc_data=ADCH;
adc_data=(adc_data>>1); // j не больше 127
if(adc_data==1) adc_data=0;// j==1 исключается - особенность функции poworot
if(i_adc_buf==2) i_adc_buf=0;
else ++i_adc_buf;
j=(adc_buf[0]+adc_buf[1]+adc_buf[2]+adc_data)/4; //рекурсия
adc_buf[i_adc_buf]=j;
}
Куска хватит или нужно всё?
Причина редактирования: Оформление цитаты исходника.