хехе

Интересно, сколько человек, не залезая в толстые справочники, найдет эту ошибку и пояснит, что это ошибка именно в исходном коде, а не " а да ой платформе оптимизатор глюч ый! Выключи оптимизацию и всё заработает!!!111".
//////////////////////////////// static int flag = 0; // глобальная переменная, флаг нужного события ISR ( USART_RXC_vect ) // обработчик какого-то прерывания { if ( any_condition () ) // некое искомое событие { flag = 1; // взводим флаг } } int main() { init_all(); // инициализируем всё for(;;) // основной цикл { while ( flag == 0 ) { do_wait_and_foreground_work (); // делаем какую-то фоновую работу пока // не случилось нужное событие }; flag = 0; do_something (); // сбрасываем флаг, обрабатываем те причины, // что привели к взведению флага } } ////////////////////////////////