PIC单片机关闭全局中断 GIE之后还是能够进入中断,而且编译之后的汇编代码里面没有 RETFIE 这条中断返回指令
单片机型号是PIC16F616,编译器是MPLAB 8.63 + PICC9.80 45天评估版,PRO模式
一下是一段测试代码
GIE = 0;
while(1)
{
PIN_LED = 1;
asm("nop");
asm("nop");
asm("nop");
asm("nop");
PIN_LED = 0;
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
这是主函数里面的测试代码,GIE = 0,全局中断已经关掉了,后面while循环里面是IO输出波形测试
但是实际情况是 观测其他IO口的输出波形证明单片机还是进入中断了(其他IO口输出波形是由中断程序产生且中断程序没有独占CPU),而且while循环里面的程序完全不执行。
有没有谁遇到过类似的问题啊? 如何解决的?
被这个问题折腾了一天了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
我用软件仿真的时候确实是不能够进入中断,但是下载到单片机里面之后确实是进了中断了。
另外编译之后的汇编代码里面没有中断返回指令又如何解释呢?
明天我到公司把程序上传,你帮我检查一下好吗?谢谢了
learn to think logically and learn to code logically.
but most importantly, learn to ask questions intelligently.
点击此处下载 ourdev_693317JXTUBQ.rar(文件大小:87K) (原文件名:Source.rar)
只需要看main.c 和pic_it.c就行了 分别是主函数 和中断函数
现在的问题是能够进入中断,但是中断执行完成之后没有跳回到while里面
一周热门 更多>