亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

串口中斷和while循環哪個優先級高一點

查看數: 8444 | 評論數: 13 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2017-8-20 10:31

正文摘要:

為啥一有while循環  串口中斷就接不到數據了 只要前進  就停止不了了   只要一前進 任何操作都執行不了了 求大神幫助 完整程序代碼: #include<reg5 ...

回復

ID:123289 發表于 2017-8-21 22:59
樓主:你能證明打不斷嗎?(樓主9樓問題)。

進入匯編級調試:
在中斷處設斷點,改單步運行,執行到中斷返回RETI后,看是不是回到你的程序中去了。
ID:228699 發表于 2017-8-21 21:26
中斷高的,只是進去了你這程序體現不出來,程序沒寫好。
ID:228347 發表于 2017-8-21 11:13
hkoos 發表于 2017-8-21 10:22
void run(){//前進
        while(1){
                P1=0x7b;

這樣寫當然不會跳出循環了,串口中斷是執行了,但是程序一直還在run函數的while(1)里面。。。沒有執行到case語句那里。兩種方法,把串口處理那部分語句寫進run函數while里面;或者,你把所有的轉動程序寫在一個函數里面,設置同一個變量,不要有循環,然后把這個函數放主函數while里面運行,串口命令去改變這個變量就好了。
ID:228342 發表于 2017-8-21 10:22
oo0o_11 發表于 2017-8-20 15:49
問題出在你這個run函數里面,里面的while循環跳不出來,不能那么寫。
void run(uint r){//前進
        w ...

void run(){//前進
        while(1){
                P1=0x7b;
                if(rw==0){
                        break;
                }         
        }       
}



case '0':  rw=0;break;//停止
case '1':  rw=1;run();break;//前進

我改成這樣還是不行啊  只要一執行ruin 其他的任何操作都執行不了了
ID:227393 發表于 2017-8-21 10:09
中斷高
ID:228342 發表于 2017-8-21 10:04
yzwzfyz 發表于 2017-8-21 01:12
如果WHILE不在一個更高級或等級的中斷服務程序中,必被串口中斷打斷。

可是打斷不了啊
ID:123289 發表于 2017-8-21 01:12
如果WHILE不在一個更高級或等級的中斷服務程序中,必被串口中斷打斷。
ID:228342 發表于 2017-8-20 20:54
oo0o_11 發表于 2017-8-20 15:49
問題出在你這個run函數里面,里面的while循環跳不出來,不能那么寫。
void run(uint r){//前進
        w ...

可是怎么在外部中斷這個while啊
ID:228347 發表于 2017-8-20 15:49
問題出在你這個run函數里面,里面的while循環跳不出來,不能那么寫。
void run(uint r){//前進
        while(r){
                P1=0x7b;         
        }        
}
前進過程中來串口中斷,需要做其他動作需要在這個while里面講你的r置0 跳出循環

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

ID:228342 發表于 2017-8-20 14:42
常沉 發表于 2017-8-20 13:00
一個中斷,一個主循環,沒有比較價值啊

可是while一循環 串口中斷里就沒法接受藍牙數據了是咋回事啊
ID:223770 發表于 2017-8-20 13:00
一個中斷,一個主循環,沒有比較價值啊

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:228342 發表于 2017-8-20 12:59
yzwzfyz 發表于 2017-8-20 12:17
語句無優先級之分,看你把哪個寫在前面,哪個就先被執行。

不是語句 是串口中斷  串口中斷好像不能中斷while循環
ID:123289 發表于 2017-8-20 12:17
語句無優先級之分,看你把哪個寫在前面,哪個就先被執行。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表