標(biāo)題: 關(guān)于51單片機(jī)掉電喚醒 [打印本頁]

作者: 溝里郭嘉    時間: 2021-10-29 13:58
標(biāo)題: 關(guān)于51單片機(jī)掉電喚醒
如果單片機(jī)進(jìn)入掉電模式,設(shè)置了下降沿中斷,那么出現(xiàn)下降沿信號時,是從“進(jìn)入掉電模式”之后開始執(zhí)行,還是執(zhí)行中斷程序,然后再執(zhí)行“進(jìn)入掉電模式”之后的語句?。
作者: maijinzhi    時間: 2021-10-29 14:28
還是執(zhí)行中斷程序
作者: Jiang_YY    時間: 2021-10-29 15:02
如果開了中斷,一般都是先進(jìn)中斷。之前也碰到過有些配置可以不進(jìn)中斷的,具體要看規(guī)格書,里面肯定有說明的。
作者: IdeaMing    時間: 2021-10-29 15:10
STC說他說要在休眠后面加兩個nop,先運(yùn)行nop再進(jìn)入中斷,STM8L是先進(jìn)中斷
作者: 188610329    時間: 2021-10-29 16:55
會先執(zhí)行  PCON = 0x02;  這條語句之后緊跟著的一條語句,極端情況下會兩條,然后才會執(zhí)行中斷語句。所以,為了防止誤傷,PCON = 0x02; 之后會加兩個nop
作者: wulin    時間: 2021-10-29 16:58
下降沿中斷喚醒首先執(zhí)行掉電模式后一條指令再執(zhí)行中斷程序。為了保證不因此出錯,所以在掉電模式語句后加兩條空指令。
作者: 溝里郭嘉    時間: 2021-10-30 07:52
188610329 發(fā)表于 2021-10-29 16:55
會先執(zhí)行  PCON = 0x02;  這條語句之后緊跟著的一條語句,極端情況下會兩條,然后才會執(zhí)行中斷語句。所以, ...

原來如此,nop的作用是這樣啊
作者: yzwzfyz    時間: 2021-10-30 16:08
1、什么是掉電模式?它置起了一個標(biāo)記,而這個標(biāo)記切斷了CPU運(yùn)行的時鐘,使得CPU停擺。
2、CPU在執(zhí)行完成一條指令后,PC會指向下一條指令。
3、當(dāng)CPU執(zhí)行到此條(掉電)指令后,已指向了下一條指令,但由于掉電模式標(biāo)記切斷了時鐘,所以無發(fā)繼續(xù)取指。
4、什么是喚醒?喚醒即去除【被置起的掉電標(biāo)記】,即CPU重新得到CLOCK,于是繼續(xù)運(yùn)行。
5、如果是中斷“申請”喚醒了掉電模式,則CPU解封,將繼續(xù)運(yùn)行,也即執(zhí)行下一條指令。
6、中斷源首先是申請中斷(置起中斷標(biāo)記),是否響應(yīng),還需要判定其它條件,判斷需要時間(幾個時鐘周期),所以中斷響應(yīng)會在下個(至少是下個)指令周期的開始。
然而,由于傳統(tǒng)的51CPU執(zhí)行一條指令需要12個CLOCK(一個機(jī)器周期或指令周期),而中斷申請是隨機(jī)發(fā)生的,不確定它發(fā)生于第幾個CLOCK,這就可能廢掉幾個時鐘周期,再從下個指令周期開始響應(yīng)(即執(zhí)行一條指令后響應(yīng)中斷)。
所以,手冊建議在掉電模式后寫一、兩條NOP指令。NOP指令只消耗時間,先執(zhí)行,后執(zhí)行無關(guān)大局。
結(jié)論:先執(zhí)行掉電后的指令,再進(jìn)入中斷。
也可以這樣理解:中斷服務(wù)如果被執(zhí)行,必定需要運(yùn)行程序,就必須解封CPU的CLOCK,CPU一但解封,它將接續(xù)之先的運(yùn)行,即進(jìn)入下一條指令。而中斷響應(yīng)還要“領(lǐng)導(dǎo)審批”后才進(jìn)行,會慢一拍。

作者: wufa1986    時間: 2021-10-30 16:38
喚醒不需要開中斷
作者: fanghui78    時間: 2021-10-31 18:05
還是執(zhí)行中斷程序
作者: ax6808    時間: 2023-1-2 02:31
今天碰到個問題:
STC8 INT0和INT1設(shè)為邊沿中斷,一個已內(nèi)部上拉,1個已外部下拉, 掉電后仍會幾秒1個周期自動喚醒,不知道是被什么中斷還是干擾誤喚醒??????? 仍在查找問題中,其他都很正常了,就剩這個問題;
作者: coody_sz    時間: 2023-1-2 15:32
ax6808 發(fā)表于 2023-1-2 02:31
今天碰到個問題:
STC8 INT0和INT1設(shè)為邊沿中斷,一個已內(nèi)部上拉,1個已外部下拉, 掉電后仍會幾秒1個周期自動 ...

還是仔細(xì)檢查下程序或外部干擾吧,多個喚醒源我很常用的。注意,一些睡眠前就允許的中斷可能會喚醒,比如串口中斷允許,睡眠后,串口接收腳有下降沿就會喚醒。
作者: dpj888888    時間: 2023-1-7 13:30
要加兩個nop,先運(yùn)行nop再進(jìn)入中斷




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