標(biāo)題: 單片機(jī)通過一個(gè)按鍵,進(jìn)入一個(gè)無限延時(shí)的中斷,能不能再通過這個(gè)按鍵,再恢復(fù)現(xiàn)場(chǎng)? [打印本頁]

作者: liu376105174    時(shí)間: 2018-1-16 18:21
標(biāo)題: 單片機(jī)通過一個(gè)按鍵,進(jìn)入一個(gè)無限延時(shí)的中斷,能不能再通過這個(gè)按鍵,再恢復(fù)現(xiàn)場(chǎng)?
問一個(gè)單片機(jī)問題:通過一個(gè)按鍵,進(jìn)入一個(gè)無限延時(shí)的中斷,能不能再通過這個(gè)按鍵,再恢復(fù)中斷?

按下按鍵  中斷  再次按下  恢復(fù)現(xiàn)場(chǎng)

作者: qq1105424012    時(shí)間: 2018-1-16 21:58
外部中斷  優(yōu)先級(jí)最高
作者: jizi    時(shí)間: 2018-1-17 07:42
可以啊在中斷里寫一個(gè)while()中間寫一個(gè)判斷
按鈕寫一個(gè)中斷優(yōu)先于上一個(gè)中斷
按鈕是用來寫一個(gè)while中的判斷
這樣就會(huì)出現(xiàn)你先要的結(jié)果
作者: 醇酒美人醉修禪    時(shí)間: 2018-1-17 09:38
本帖最后由 醇酒美人醉修禪 于 2018-1-17 17:05 編輯

#include "reg52.h"
sbit KEY=P1^0;
bit key_flag=0;
void main()
{
...
while(1)
{
...
if(KEY==0)  key_flag=0;
while(key_flag==0)
{
if(KEY==0)  {
delay_ms(10);
if(KEY==0)  
{
key_flag=!key_flag;
}
}
delay_ms(200);
while(KEY==0);
}
...
}
}


作者: 滄海月明    時(shí)間: 2018-1-17 09:57
可以的,定義整形一個(gè)變量,初始值設(shè)為0.按鍵按一次,變量加一,在按一次再加一。通過查詢變量的值,來判斷執(zhí)行哪段程序
作者: 貪戀    時(shí)間: 2018-1-17 21:55
有一點(diǎn)你需要注意:中斷里面是不能延時(shí)的,這是寫程序的大忌




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