Код
BYTE flag;
В функции main()
flag = 1; // заводим переменную и устанавливаем ее в 1
while(flag); // стоим здесь, пока значение переменной не сбросится в 0
LED1 = 1; // а потом зажигаем лампочку
Потом в функции по периодическому прерыванию:
flag = 0; // сбрасываем флаг
LED2 = 1; // и включаем другую лампочку
В функции main()
flag = 1; // заводим переменную и устанавливаем ее в 1
while(flag); // стоим здесь, пока значение переменной не сбросится в 0
LED1 = 1; // а потом зажигаем лампочку
Потом в функции по периодическому прерыванию:
flag = 0; // сбрасываем флаг
LED2 = 1; // и включаем другую лампочку
При отключенной оптимизации (level 0), все работает правильно. При включенной - программа вечно стоит в цикле while, при том что прерывание вызывается и светодиод LED2 горит! Поставил последнюю версию компилятора (1.10), все то же самое. Как бороться пока не знаю, наверное, придется локально отключать оптимизатор...