Цитата(Чип-Хрум @ Jun 9 2007, 13:37)

unsigned char ADC_2(unsigned char adc_end);
int main(void)
{
sei();
DDRA=0x00;
PORTA=0x00;
DDRD=0xff;
DDRB=0xb0;
PORTB=0x00;
DDRC=0xff;
PORTC=0x00;
SFIOR=0x00;
adc_end = 2;
ADC_2(adc_end);
//??????????? ?????????
return (0);
}
В main нет рабочего цикла: действия выполняются последовательно
>adc_end = 2;
>ADC_2(adc_end);
а прерывание было во время выполнения main?
Если нет, то все верно. Никаких изменений для adc_end.
Если было, то когда?
Если до команды:
adc_end = 2;
то все правильно, т.к. присваивание после прерывания, а если после, то надо разбираться подробно.
Наука изощряет ум; ученье вострит память. Козьма Прутков