我用 atmega168a-pu 和中断开发了一个 C 应用程序。我使用以下中断:
ISR(TIMER0_COMPA_vect);
ISR(TIMER0_COMPB_vect);
ISR (TIMER2_COMPA_vect);
ISR(SPI_STC_vect);
ISR(TIMER1_COMPA_vect);
ISR (PCINT1_vect);
我的代码看起来像
int main(void){
///initialization etc.
sei();
while(1){
///do some stuff and wait the interrupts
}
return 0;
}
我想在发生中断时阻止所有其他中断,并在退出中断功能之前启用中断。
您能否在代码片段上解释一下我该怎么做?
编辑:http : //www.nongnu.org/avr-libc/user-manual/optimization.html#optim_code_reorder 指出这种用法会导致重新编码问题。
function(){
cli();
..
sei();
}