在网上了查了很多,不过似乎都是有问题没答案,所以就试试在这里问问了. atmega8+gcc,做个2ms的延时程序,程序如下:
int KeyFlag=0; int KeyValue=0; SIGNAL(SIG_OVERFLOW0) { KeyFlag=1; KeyValue=0x01; }
int main(void) { TCNT0 = 0x06; TCCR0 = 0x01; // 系统时钟,不分拼 TIMSK = 0x01; sei(); while(!KeyFlag); 等待2ms到来 // do something here }
程序会停在 while(!KeyFlag)这里, 好象是没有中断造成. 但实际去跟踪调试时,发现程序能进中断, 这是怎么回事啊? |