INT中断进不去【恢复】

2020-02-10 08:44发布

先贴上我的程序:

/*

  单片机:PIC16F690

  功  能:INT中断测试

*/

#include<pic.h>              



#define uchar unsigned char 

#define uint  unsigned int 



//-------------------- 

//主程序 

void main() 

{ 

  OPTION=0X00;                //INT 引脚的下降沿触发中断 



  TRISA=0X0F;                //A2为中断口

  TRISB=0X00;                // 

  TRISB=0X00;

  INTE=1;                        //INT 外部引脚中断允许位 

  GIE=1;            //开放全局中断 

  PEIE=1;           //使能外部中断 

  PORTB=0X00; 



  while(1)                     

           { 

        } 

  } 



//中断函数 

void interrupt INT(void) 

  { 

   if(INTE && INTF)     //判断是否为外部中断 

     { 

                INTF=0; 

                PORTB=0X40;;    //RB6仅仅应该没有出现了高脉冲,就又恢复为低电平了,怎么回事呢? ?

     } 

   }

以上程序好像是进不了中断,是否设置有问题? 

公司里现在开始使用PIC单片机,望高手指点指点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
headwolf_83
1楼-- · 2020-02-10 14:23
IO口的方向要符合逻辑,如果是输入作用的,比如INT中断,232的RX,捕捉模块,如果DATASHEET没有很特殊的说明,都是要设置为输入的,即1。
headwolf_83
2楼-- · 2020-02-10 18:37
 精彩回答 2  元偷偷看……
wbcity
3楼-- · 2020-02-10 23:47
先声明我是菜鸟,正在学dsPIC30F的,不知道区别大不大。

可能是中断函数不对吧。

改成void _ISR _INT(void)试试,还应该在前面先声明一下。
liubinghui
4楼-- · 2020-02-11 00:47
路过

一周热门 更多>