|
Вот этот код с включенной оптимизацией не работает.
Var_key -это скан код клавиатуры. нажимаешь кнопку-диод загорается
L_Ctrl -это запуск канала таймера. Прерывание берет эту глобальную переменную и что-то с ней должно делать. на самом деле она остается нулем!
for(;;) {switch (var_key){//key pressed
case 0x01:{a=1; PORTF=2; L_Ctrl=1; var_key=0;}; break;
case 0x02:{a=2;PORTF=4; L_Ctrl=1;var_key=0;}; break;
case 0x04:{a=3;PORTF=8;L_Ctrl=1; var_key=0;}; break;
case 0x08:{a=4;PORTD=0x10;var_key=0;}; break;
case 0x10:{a=5;PORTD=0x20;var_key=0;}; break;
case 0x20:{a=6;PORTD=0x40;var_key=0;}; break;
case 0x40:{a=7;PORTD=0x80; var_key=0;}; break;
}if (L_Out&(0xfe)) {L_Out=0; L_Ctrl=0;PORTF=0; PORTD=0;};
}
E-mail: info@telesys.ru