標(biāo)題: 51單片機(jī)判斷中斷觸發(fā)順序問(wèn)題 [打印本頁(yè)]

作者: 一折    時(shí)間: 2018-4-26 18:07
標(biāo)題: 51單片機(jī)判斷中斷觸發(fā)順序問(wèn)題
兩個(gè)外部中斷,EX0和EX1,如果觸發(fā)順序是EX0 EX1,flag為1,如果觸發(fā)順序是EX1 EX0,flag為0,如何解決?

作者: yfpc2006    時(shí)間: 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    時(shí)間: 2018-4-26 20:58
可以不錯(cuò)
作者: yzwzfyz    時(shí)間: 2018-4-26 22:22
這里隱含了一個(gè)重要的量:何時(shí)開(kāi)始,如果沒(méi)有起點(diǎn),是談不上先后的!
在剛開(kāi)始的時(shí)候,并不知道誰(shuí)先誰(shuí)后,這時(shí)候FLAG當(dāng)=?。
樓主的命題,未說(shuō)明清楚!
模糊的方法是:假設(shè)兩者是輪流到來(lái)的,那么:
當(dāng)EX0到來(lái)時(shí),就將FLAG清0,理由在EX0之前一定有EX1,所以認(rèn)為是先EX1后EX0。
同理:
當(dāng)EX1到來(lái)時(shí),就將FLAG置1,理由在EX1之前一定有EX0,所以認(rèn)為是先EX0后EX1。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1