找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2911|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机判断中断触发顺序问题

[复制链接]
跳转到指定楼层
楼主
ID:307244 发表于 2018-4-26 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个外部中断,EX0和EX1,如果触发顺序是EX0 EX1,flag为1,如果触发顺序是EX1 EX0,flag为0,如何解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:138119 发表于 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)
{
        ;//第三种情况
}

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:317364 发表于 2018-4-26 20:58 | 只看该作者
可以不错
回复

使用道具 举报

地板
ID:123289 发表于 2018-4-26 22:22 | 只看该作者
这里隐含了一个重要的量:何时开始,如果没有起点,是谈不上先后的!
在刚开始的时候,并不知道谁先谁后,这时候FLAG当=?。
楼主的命题,未说明清楚!
模糊的方法是:假设两者是轮流到来的,那么:
当EX0到来时,就将FLAG清0,理由在EX0之前一定有EX1,所以认为是先EX1后EX0。
同理:
当EX1到来时,就将FLAG置1,理由在EX1之前一定有EX0,所以认为是先EX0后EX1。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表