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