标题:
51单片机判断中断触发顺序问题
[打印本页]
作者:
一折
时间:
2018-4-26 18:07
标题:
51单片机判断中断触发顺序问题
两个外部中断,EX0和EX1,如果触发顺序是EX0 EX1,flag为1,如果触发顺序是EX1 EX0,flag为0,如何解决?
作者:
yfpc2006
时间:
2018-4-26 19:22
//思路仅供参考
if(EX0 == 1 && EX1 == 0)
{
flag = 1;
}
else if(EX0 == 0 && EX1 == 1)
{
flag = 0;
}
else
{
;//第三种情况
}
//或者:
uchar f0,f1;
if(EX0 == 1 )
{
f0 = 1;
}
if(f0 == 1 && EX1 == 0)
{
f0 = 0;
flag = 1;
}
//=============================
if(EX1 == 1 )
{
f1 = 1;
}
if(f1 == 1 && EX0 == 0)
{
f1 = 0;
flag = 0;
}
//==============================
if(f0 == 1 && f1 == 1)
{
;//第三种情况
}
作者:
1085405788
时间:
2018-4-26 20:58
可以不错
作者:
yzwzfyz
时间:
2018-4-26 22:22
这里隐含了一个重要的量:何时开始,如果没有起点,是谈不上先后的!
在刚开始的时候,并不知道谁先谁后,这时候FLAG当=?。
楼主的命题,未说明清楚!
模糊的方法是:假设两者是轮流到来的,那么:
当EX0到来时,就将FLAG清0,理由在EX0之前一定有EX1,所以认为是先EX1后EX0。
同理:
当EX1到来时,就将FLAG置1,理由在EX1之前一定有EX0,所以认为是先EX0后EX1。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1