求助,PIC 关闭全局中断还是能够进中断

2020-02-08 12:11发布

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循环里面的程序完全不执行。

有没有谁遇到过类似的问题啊? 如何解决的?
被这个问题折腾了一天了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
wangjiati
1楼-- · 2020-02-08 13:39
关闭总中断 是肯定不会进入中断处理的..  你的程序肯定有其他地方出错了
20061002838
2楼-- · 2020-02-08 19:31
回复【1楼】wangjiati  叶子
-----------------------------------------------------------------------
我用软件仿真的时候确实是不能够进入中断,但是下载到单片机里面之后确实是进了中断了。
另外编译之后的汇编代码里面没有中断返回指令又如何解释呢?
明天我到公司把程序上传,你帮我检查一下好吗?谢谢了
millwood0
3楼-- · 2020-02-08 23:03
"如何解决的?"

learn to think logically and learn to code logically.

but most importantly, learn to ask questions intelligently.
vipcff
4楼-- · 2020-02-09 04:44
最好贴全部程序。看门狗关了吗?
wangrwnyan123
5楼-- · 2020-02-09 09:32
 精彩回答 2  元偷偷看……
20061002838
6楼-- · 2020-02-09 12:17
我把程序上传上来了
点击此处下载 ourdev_693317JXTUBQ.rar(文件大小:87K) (原文件名:Source.rar)

只需要看main.c  和pic_it.c就行了 分别是主函数 和中断函数

现在的问题是能够进入中断,但是中断执行完成之后没有跳回到while里面

一周热门 更多>