欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1937|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

請教51單片機(jī)中斷程序 多謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:918409 發(fā)表于 2023-4-25 12:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請問可否實(shí)現(xiàn)如下功能:在單片機(jī)外部中斷服務(wù)程序里首先修改其自己的優(yōu)先級(jí),然后在執(zhí)行這個(gè)外部中斷服務(wù)程序里的代碼時(shí),再次觸發(fā)這個(gè)外部中斷

請問能實(shí)現(xiàn)么?

我遇到一個(gè)有點(diǎn)想不明白的問題:
我定義一個(gè)全局變量k,用于檢測是低級(jí)的外部中斷還是高級(jí)的外部中斷,k為0時(shí)執(zhí)行低級(jí)代碼,k為1時(shí)執(zhí)行高級(jí)代碼
void int0( )  interrupt 0  using 1        
{        if(k==0)
        {
                PX0=1;
                k=1;               
                                                                                                        
                while(1)         
                {                        
                   P1=0xf0;               
                }               
        }
        else
        {        
                P1=0xff        ;                                       
                Delay( ) ;                                       

                P1=0x00;                                                
                Delay( );        
         }
}

以上代碼在Proteus仿真沒問題。在低級(jí)中斷無限循環(huán)時(shí)可以觸發(fā)其自身高級(jí)中斷,并能執(zhí)行完一次閃爍再次返回低級(jí)中斷無限循環(huán)
但是如果代碼改成這樣:低級(jí)外部中斷時(shí)只執(zhí)行一次,高級(jí)部分不變
void int0( )  interrupt 0  using 1               
{        
        if(k==0)
        {
                PX0=1;
                k=1;
               
                P1=0xf0;                                                        
                Delay() ;                                                
                Delay() ;                                                
                P1=0x0f;
                Delay() ;                                                
                Delay() ;                                                

                PX0=0;
                k=0;        
        }
        else
        {        
                P1=0xff        ;                                       
                Delay() ;                                       

                P1=0x00;                                                
                Delay();
        }
}

以上代碼仿真時(shí),則一直留在了高級(jí)代碼,不再返回低級(jí)繼續(xù)執(zhí)行了。
這是為什么呢?請求高人解惑!多謝多謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2023-4-25 14:27 | 只看該作者
你都k=0了,那么k==0只要滿足一次永遠(yuǎn)滿足,自然不會(huì)執(zhí)行k!=0的代碼了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:807182 發(fā)表于 2023-4-25 14:33 | 只看該作者
對,你在K=0的代碼里面先給K賦值1,在賦值0,那就不會(huì)進(jìn)下面那個(gè)代碼了
回復(fù)

使用道具 舉報(bào)

地板
ID:998389 發(fā)表于 2023-4-25 14:40 | 只看該作者
while(1)         
                {                       
                   P1=0xf0;               
                }       程序會(huì)一直死在這里把
回復(fù)

使用道具 舉報(bào)

5#
ID:291668 發(fā)表于 2023-4-25 14:54 | 只看該作者
代碼錯(cuò)誤,仔細(xì)檢查一下
回復(fù)

使用道具 舉報(bào)

6#
ID:918409 發(fā)表于 2023-4-25 15:46 | 只看該作者
Hephaestus 發(fā)表于 2023-4-25 14:27
你都k=0了,那么k==0只要滿足一次永遠(yuǎn)滿足,自然不會(huì)執(zhí)行k!=0的代碼了。

怪我沒說明白。當(dāng)執(zhí)行k==0代碼段時(shí),其實(shí)時(shí)間挺長,有2秒鐘。在這段代碼最開始的地方,通過PX0=1修改了外部中斷0的優(yōu)先級(jí),因此在這兩秒鐘器件,可以再次觸發(fā)一次外部中斷0(因?yàn)閮?yōu)先級(jí)已經(jīng)改成高了,從而中斷了過去那個(gè)低優(yōu)先級(jí)的外部中斷0程序)。
回復(fù)

使用道具 舉報(bào)

7#
ID:918409 發(fā)表于 2023-4-25 15:50 | 只看該作者
暖西夏 發(fā)表于 2023-4-25 14:33
對,你在K=0的代碼里面先給K賦值1,在賦值0,那就不會(huì)進(jìn)下面那個(gè)代碼了

還是可以的。我沒等低優(yōu)先級(jí)的外部中斷0服務(wù)程序執(zhí)行完,就馬上觸發(fā)了高優(yōu)先級(jí)外部中斷0(通過修改PX0=1改變了外部中斷0的優(yōu)先級(jí)),因此按理說還沒執(zhí)行到k=0呢
回復(fù)

使用道具 舉報(bào)

8#
ID:918409 發(fā)表于 2023-4-25 15:51 | 只看該作者
byyw 發(fā)表于 2023-4-25 14:40
while(1)         
                {                       
                   P1=0xf0;            ...

這是我想要的結(jié)果。第一段嘗試用無限循環(huán),而第二段只是短時(shí)間顯示
回復(fù)

使用道具 舉報(bào)

9#
ID:123289 發(fā)表于 2023-4-26 17:07 | 只看該作者
在中斷未返回時(shí),不會(huì)響應(yīng)再次中斷。直到返回時(shí),才會(huì)被響應(yīng)。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表