打印
[国产单片机]

请高手看看我设置的中断对吗,为什么不能触发中断?

[复制链接]
1099|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liu98|  楼主 | 2015-11-12 00:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liu98 于 2015-11-12 00:26 编辑

void int0_r(void) interrupt 0
{
         EX0=0;
        P23=1;
        P22=1;
        while(P31==1);
        P41=0;
        delay50ms();
        P41=1;
        P23=0;
        P22=0;
        EX0=1;
}

void int1_r(void) interrupt 2
{
        EX1=0;
        P23=1;
        P22=1;
        while(P31==1);
        P41=0;
        delay50ms();
        P41=1;
        P23=0;
        P22=0;
        EX1=1;         
}

void int4_r(void) interrupt 16
{
        INT_CLKO &=0xbf;
        while(P31==1);
        INT_CLKO |=0x40;
}
void main()
{
        unsigned char i=0;
        while(i>25)
        {
                delay50ms();
                i++;
        }
        P23=0;
        while(P00==1);
        P22=0;
    EA=1;
        EX1=1;
        IT0=0;
        EX0=1;
        IT1=0;
        INT_CLKO |=0x40;
        while(1)
        {
                if(P55==0)fuwei();
                if(P31==0)shangliao();
                if(P17==0)tisheng();
        
        }
}使用的是STC15F2K60S2单片机,只是做简单的控制所以其他代码没有粘过来,请高手看看哪里出了问题

相关帖子

沙发
forget345| | 2015-11-13 09:44 | 只看该作者
谁教你在中断里使用 while 和 delay 的?

使用特权

评论回复
板凳
liu98|  楼主 | 2015-11-20 07:08 | 只看该作者
本帖最后由 liu98 于 2015-11-20 07:10 编辑

本人初学,现在只是控制简单的动作,还请指教说明原因,因为设置急停按钮触发中断,所以while是在等待急停复位信号

使用特权

评论回复
地板
yeguohua| | 2015-12-27 14:27 | 只看该作者
没用过STC,但 中断是不需要等待的

使用特权

评论回复
5
ter20cn| | 2016-1-12 16:10 | 只看该作者
liu98 发表于 2015-11-20 07:08
本人初学,现在只是控制简单的动作,还请指教说明原因,因为设置急停按钮触发中断,所以while是在等待急停 ...

把中断触发改为 “上升下降沿触发” 或者“在中断内部暂时关闭此中断功能,在主程序中检查触发中断的pin来确定是否回复中断功能,同时设置一个延迟,延迟时间到了也重新开启中断功能”

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

0

粉丝