PICC中断应用之大问题(菜鸟特别关注)
在PICC的中断函数里调用一个函数后,整个程序都不运行了,而这个函数在主循环里用查询方式是能正常运行的。 这究竟是咋回事???该如何处理???
/*PICC中断函数*/ void interrupt timer0_isr(void) { if(reload == 0){ seconds++; ScanKey2();//此处调用按键扫描函数后 将整个程序烧入片子 程序就不运行了!!! } reload--; T0IF = 0; }
/*中断中调用的函数*/ void ScanKey2(void) { static unsigned int KeyCounter=0; static bit FirstPress; unsigned char KeyValue; KEY_IN(); KeyValue=GET_KEY(); if(KeyValue==0x3) { KeyCounter=0; FirstPress=0; KEY_READY(); return; } if(FirstPress) { if(++KeyCounter>KEY_TIME) { KeyCounter-=KEY_SPEED; KeyProcess(KeyValue); //i=0; } else { KEY_READY(); return ; } } //if(FirstPress) else { for(i=200;i>0;i--);
KeyValue=GET_KEY(); if(KeyValue==0x3) { KeyCounter=0; FirstPress=0; KEY_READY(); return; } FirstPress=1; KeyCounter=0; KeyProcess(KeyValue); }
KEY_READY();
}
|