标题:
关于51单片机进入中断服务函数后关闭中断开关的疑问
[打印本页]
作者:
丶念
时间:
2025-5-26 12:52
标题:
关于51单片机进入中断服务函数后关闭中断开关的疑问
用51单片机做一个小物件,初始化设置外部中断0为下降沿触发,响应中断后关闭中断开关EX0=0,同时记录中断次数EX0_Cnt++,开始定时器0开关TR0=1,延时200毫秒(防止小于200毫秒时间内再次造成中断)后,关闭定时器0开关TR0=0,打开外部中断0开关EX0=1.程序如下所示,不知道是哪里出了问题,外部中断次数EX0_Cnt显示不正确。
void INT0_Isr() interrupt 0
{
EX0 = 1; //关闭外部中断0
TR0 = 1; //打开定时器0
EX0_Cnt++; //记录中断次数加1
}
void Timer0_Isr() interrupt 1
{
Timer0_Cnt++;
if(Timer0_Cnt>200)
{
Timer0_Cnt = 0;
EX0 = 1;
TR0 = 0;
}
}
作者:
太阳雨ZW
时间:
2025-5-26 16:19
void INT0_Isr() interrupt 0
{
EX0 = 1; //关闭外部中断0
TR0 = 1; //打开定时器0
EX0_Cnt++; //记录中断次数加1
}
外部中断关闭了吗?
作者:
丶念
时间:
2025-5-26 17:16
太阳雨ZW 发表于 2025-5-26 16:19
void INT0_Isr() interrupt 0
{
EX0 = 1; //关闭外部中断0
要进两次外部中断了才能关闭
(EX0_Cnt自增2次)
作者:
xiaobendan001
时间:
2025-5-26 18:46
对啊,关闭不是EX0 = 0吗?
作者:
rundstedt
时间:
2025-5-26 19:29
外部中断是哪里来的?你认为的中断次数不等于实际的中断次数,要用示波器单次触发抓波形才能确认。
作者:
chxelc
时间:
2025-5-26 20:17
还要做软件或硬件防抖。
作者:
shenqiwei
时间:
2025-5-27 02:02
你怎么没有把总中断打开呢?
作者:
a399288395
时间:
2025-5-27 07:33
EX0 = 1; //关闭外部中断0
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1