[PIC®/AVR®/dsPIC®产品] 为什么我的INT功能进入不了中断?

[复制链接]
3068|6
 楼主| cr315 发表于 2021-8-19 10:06 | 显示全部楼层 |阅读模式
本帖最后由 pzsh 于 2021-9-13 13:38 编辑

为什么我的RB0口进入不了中断?是哪里的问题?

#include<pic.h>
#include<pic16f877a.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3731);
void delay(uint x)
{
    uint a,b;
    for(a=x;a>0;a--)
        for(b=110;b>0;b--);
}
void init()    //初始化
{
    OPTION_REG=0x00;            //RBPU=0使能B口上拉电阻,INTEDG=0下降沿触发中断
    INTCON=0xD0;                //GIE为1允许总中断,INTE=1使能RB0/INT外部中断,INTF=0清RB0外部中断标志位
    TRISB=0x01;                    //B口低2位设为键盘的输入
    TRISD=0;                    //D口低4位设为LED的输出
//    PORTB=0x01;
    PORTD=0;                    //D口清零
}
void interrupt INT()
{
    if(INTF==1)                    //查询中断标志位是否被置1
    {
        INTF=0;                    //清中断标志位
        if(RB0==0)                //再次检测RB0口是否被按下
        {
            PORTD=0x02;            //马达反转
        }
    }
}
void main()
{
    init();
    while(1)
    {
        PORTD=0x00;            //马达反转
    }
}

评论

你在INTF清零的地方设断点,看能不能进入。  发表于 2021-8-23 08:04
WESTBR00K 发表于 2021-8-20 20:08 | 显示全部楼层
你把清中断标志位放在中断函数最后面,不要进来就清。
kiwis66 发表于 2021-8-21 14:52 | 显示全部楼层
他说进不去中断,不是中断处理不对
lcczg 发表于 2021-8-24 16:20 | 显示全部楼层
RB0上的信号用示波器看过吗?
AINZGOWN 发表于 2021-8-25 16:00 | 显示全部楼层
你DEBUG看看,设置断点,看看有没有进中断
pzsh 发表于 2021-9-13 13:38 | 显示全部楼层
中断使能,总中断使能什么的是不是都打开了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1471

主题

5021

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部