一、 STM8S 外部中斷進行喚醒
先了解一下STM8S的中斷資源
再看看STM8S的中斷管理。STM8S采用軟件優(yōu)先級和硬件優(yōu)先級來控制一個中斷的響應,先比較軟件優(yōu)先級只有當軟件優(yōu)先級一致時才會比較硬件優(yōu)先級,由于硬件優(yōu)先級具有唯一性,這樣便保證了某一時刻定會只有一個中斷被處理。
要使用外部中斷,只需簡單的配置一下EXTI_CR1寄存器,并將主程序main的軟件優(yōu)先級置為0即可。默認情況下自復位開始,主程序的軟件優(yōu)先級被設置為3,處于最高軟件優(yōu)先級,僅有TRAP,TLI,RESET中斷能夠打斷,其余的中斷都是不會被響應的。
為了防止中斷過程中被別的優(yōu)先級高的中斷所打斷,可以將當前優(yōu)先級置為最高3級。
代碼如下:
[cpp] view plaincopy
main.c代碼
//EXTI_CR1|=EXTI_CR1_PBIS_R; //PB5 TRINT 高電平觸發(fā)
EXTI_CR1|=EXTI_CR1_PCIS_R; //PC3 上升沿觸發(fā)
//#define EXTI_CR1_PCIS_R (1<<4)
RIM; //開全局中斷,必須要有這句,否則只會響應不可屏蔽中斷
//#define HALT _asm("halt")
//#define RIM _asm("rim")
//#define SIM _asm("sim")
GPIO_Init(GPIOC,TRINT,GPIO_MODE_IN_PU_IT); //使能對應的IO口中斷
stm8s_it.c代碼
//收發(fā)中斷(PC3) BJ8F101
@far @interrupt void EXTI_PORTC_IRQHandler(void)
{
//作為接收中斷使用,需要注意PSB_D,TRRDY_U 會產(chǎn)生一次中斷,TRINT被拉高
if(cur_mode==RX_MODE)
{
//為了排除第一次,可以檢測PSB是否為高,高表示是Active Mode
if(PB_ODR&PSB)
{
ss=1;
}
}else
{
}
return;
}
其實rim指令,只是將主程序的軟件優(yōu)先級降低為0,這樣才能被中斷打斷。自然sim指令適用于將軟件優(yōu)先級拉升至3級別。
而且還得注意如果一個端口上存在幾個不同的中斷(PC3,PC4,PC5都有中斷發(fā)生),只能根據(jù)其他的一些標志來判斷是哪個IO口中斷,其實這個芯片是沒有中斷標志位的。
另外一個是出現(xiàn)進入中斷后跳不出來,很有可能是指令執(zhí)行順序不正確,如:先執(zhí)行了rim指令,接著使能GPIO口中斷后,將對應的IO口設置為上升沿觸發(fā),發(fā)現(xiàn)跳進中斷后就出不來。這個原因是因為IO口可能復位后就處于不確定狀態(tài),執(zhí)行rim后立刻就被響應。默認情況下IO口上升沿下降沿都將觸發(fā)中斷。
外部中斷是能夠喚醒系統(tǒng)的,如:
也就是說在main函數(shù)中執(zhí)行了halt指令后,進入停機模式(沒有使能AWU的情況下),外部中斷能夠?qū)CU中停機喚醒。使用仿真器可以設置斷點進行證實,或者通過LED燈亦可。
二、 AWU自動喚醒
STM8S除了等待模式,停機模式,還提供活躍停機模式。活躍停機的使用,只需要將AWU使能即可。
[cpp] view plaincopy
#ifdef ENABLE_AWU
void Init_AWU(void)
{
CLK_PCKENR2=CLK_PCKENR2_AWU; //使能AWU時鐘
//#define AWU_AWUTB_1S 0x0C /*500ms ~ 1s*/
//#define AWU_AWUTB_2S 0x0D /*1s ~ 2s*/
AWU_TBR=AWU_AWUTB_1S; //AWU_AWUTB_2S; //1~2s
AWU_APR=0x3E; //分頻
AWU_CSR|=0x10; //AWU使能
#ifdef POWER_LEVEL_1 //功耗1,最省電
CLK_ICKR|=CLK_ICKR_REGAH; //活躍停機模式(AWU使能情況)下,關(guān)閉電壓調(diào)節(jié)器節(jié)省功耗
FLASH_CR1|=FLASH_CR1_AHALT; //活躍停機模式下Flash掉電,默認只有停機模式才掉電,代價是喚醒時間增加至微秒級別
#endif /*ENABLE POWER_LEVEL_1*/
}
#endif /*END ENABLE_AWU*/
然后在main函數(shù)內(nèi)部執(zhí)行halt指令后直到AWU進行喚醒,MCU才會接著運行。另外STM8S的AWU定時喚醒提供最大30秒左右延時。
三、窗口看門狗
STM8S提供兩種類型看門狗,個人感覺窗口看門狗能夠解決停機模式與使用看門狗的矛盾,因此獨衷于窗口看門狗。
代碼如下:
[cpp] view plaincopy
#ifdef ENABLE_WWDG
void Init_WWDG(void) //初始化窗口看門狗
{
//窗口看門狗在計數(shù)值降到0x3F時產(chǎn)生復位,而且不能在大于窗口值時喂狗,否則復位
WWDG_WR = 0x60; //看門狗窗口值,窗口值必須在0x3F以上,但必須小于計數(shù)值,否則無法喂狗
WWDG_CR = 0x7F; //看門狗計數(shù)值
WWDG_CR |= 0x80; //使能窗口看門狗
//4Mhz 主頻,計數(shù)值0x7F 最大延長時間為 (64 * (12288 / 4000000)) = 196ms
}
void Free_WWDG(void)
{
if ((WWDG_CR & 0x7F) < WWDG_WR) //小于窗口值才能喂狗
WWDG_CR |= 0x7F; //重新喂狗
}
#endif /*END ENABLE_WWDG*/
不能使用定時器來定時喂狗,MCU掛掉后可能定時器電路仍在工作,這樣看門狗就失去了意義。
獨立看門狗不受MCU停機模式或其他模式影響,它的時鐘是獨立的,所以進入停機模式會導致系統(tǒng)復位。
總結(jié):
1、中斷的使用需要注意優(yōu)先級的設置,以及對應的IO口使能觸發(fā)條件。
2、AWU的使用相對簡單,只需要注意將時鐘打開。
3、窗口看門狗要注意喂狗,以及延時設置,具體延時時間可以使用 step = 12288 / fclk_wwdg_ck計算出來。
上一篇:STM8S——8位基本定時器(TIM4)
下一篇:STM8S——Clock control(CLK)
推薦閱讀
史海拾趣
品質(zhì)是aconno公司發(fā)展的基石。公司從一開始就注重產(chǎn)品質(zhì)量和用戶體驗,從原材料采購到生產(chǎn)工藝,再到產(chǎn)品測試,每一個環(huán)節(jié)都嚴格把關(guān)。這種對品質(zhì)的堅持,使得aconno的產(chǎn)品在市場上贏得了良好的聲譽。同時,公司還建立了完善的售后服務體系,為用戶提供及時、專業(yè)的技術(shù)支持,進一步增強了用戶的信任度和忠誠度。
MACOM公司上市后,成功募得了充足的資金,使其財務能力得到了顯著增強。這使得公司能夠有更多的資源進行研發(fā)、生產(chǎn)和市場推廣,進一步鞏固其在電子行業(yè)的地位。同時,上市也為MACOM帶來了更廣泛的投資者關(guān)注和市場認可,為其未來的發(fā)展提供了有力支持。
隨著技術(shù)的不斷進步和產(chǎn)品線的不斷豐富,邁翔科技開始積極拓展國內(nèi)外市場。公司不僅在國內(nèi)市場取得了良好的銷售業(yè)績,還成功打入了歐美、東南亞等國際市場。同時,公司也與眾多知名企業(yè)建立了長期穩(wěn)定的合作關(guān)系,進一步提升了品牌影響力和市場競爭力。
DCD公司自創(chuàng)立之初,就專注于數(shù)字核心設計領(lǐng)域的研發(fā)。創(chuàng)始人們憑借對電子技術(shù)的深刻理解和市場需求的敏銳洞察,帶領(lǐng)團隊攻克了一個又一個技術(shù)難關(guān)。在產(chǎn)品研發(fā)初期,公司面臨著資金短缺和技術(shù)難題的雙重壓力,但團隊憑借著堅韌不拔的精神,成功研發(fā)出了首款具有競爭力的數(shù)字核心設計產(chǎn)品,為公司的發(fā)展奠定了堅實的基礎(chǔ)。
在快速變化的市場環(huán)境中,創(chuàng)新成為DCD公司持續(xù)發(fā)展的關(guān)鍵。公司不斷加大研發(fā)投入,鼓勵員工提出創(chuàng)新性的想法和建議。同時,公司還積極引進國內(nèi)外先進的技術(shù)和管理經(jīng)驗,為公司的發(fā)展注入了新的活力。在創(chuàng)新驅(qū)動下,DCD公司不斷推出具有競爭力的新產(chǎn)品和解決方案,贏得了客戶的廣泛贊譽和市場的持續(xù)認可。
隨著市場的不斷變化,BusBoard Prototype Systems意識到,要想在激烈的競爭中保持領(lǐng)先地位,必須不斷進行技術(shù)創(chuàng)新。于是,公司投入大量資源研發(fā)新的BusBoard技術(shù),成功提高了原型制作的精度和效率。這一技術(shù)突破不僅贏得了客戶的廣泛贊譽,也為公司帶來了更多的業(yè)務機會。
摘要 本文介紹了RFID技術(shù)的發(fā)展歷史和標準現(xiàn)狀,同時對全球RFID產(chǎn)業(yè)的發(fā)展進行了分析和比較,并預測未來幾年內(nèi)在全球開放的市場下,以供應鏈的應用為贏利主體的RFID技術(shù)將會帶來巨大的商機。 關(guān)鍵詞 RFID 標簽 自動識別技術(shù) 集成電路芯片 ...… 查看全部問答∨ |
|
#include <msp430x14x.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P3DIR |= 0x02;&nb ...… 查看全部問答∨ |
|
HI 各位高手: 小弟想知道,調(diào)GPRS的時候依次要發(fā)那些命令各是什么意思?不同的MODEM調(diào)的時候,要做的事大概差不多吧。有關(guān)這塊,有沒有什么好資料啊,發(fā)給我一份或給個網(wǎng)址(279578853·QQ。COM)。 我自己在試著調(diào)的時 ...… 查看全部問答∨ |
|
外資企業(yè)招嵌入式工程師: Education / Experience Engineering degree or above in electrical/electronic engineering or computer sciences with experience in product development lifecycle and embedded software development. At Least ...… 查看全部問答∨ |
由于新業(yè)務需要,摩托羅拉誠聘簽約員工。要求如下: 1)項目領(lǐng)域:Push-To-X, Video Surveillance, Pushmail, Auto-Office等 2)職位劃分:手機應用(Mobile Application)開發(fā)或Server端程序開發(fā) 3)具有很好的表述(presentation)能力和溝 ...… 查看全部問答∨ |
MSP430之2系列用戶指導和示例代碼,這個就不多說了,官網(wǎng)資料,很經(jīng)典,精華之作!!! [ 本帖最后由 鑫海寶貝 于 2011-10-12 09:38 編輯 ]… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 艾邁斯歐司朗進一步優(yōu)化紅外激光產(chǎn)品 滿足極高要求3D傳感應用需求
- 大聯(lián)大詮鼎集團推出基于立锜科技產(chǎn)品的140W電源適配器方案
- Vicor將在2025中國國際低空經(jīng)濟產(chǎn)業(yè)創(chuàng)新發(fā)展大會上展示eVTOL 800V平臺DC-DC解決方案
- 研華「Edge Computing & WISE-Edge in Action」主題論壇隆重登場
- 研華攜手高通 加速推動AIoT物聯(lián)網(wǎng)邊緣智慧創(chuàng)新
- 英飛凌攜手優(yōu)優(yōu)綠能,助力電能轉(zhuǎn)換效率新突破
- 邊緣 AI:物聯(lián)網(wǎng)實施新標桿
- 全局快門圖像傳感器技術(shù)的改進提升了機器視覺效率
- 聯(lián)想自研5nm芯片SS1101跑分曝光:對標第二代驍龍8
- Arm 與微軟合作,為基于 Arm 架構(gòu)的 PC 和移動設備應用提供超強 AI 體驗
- 賈躍亭誠心想造車?FF 91已申請2000余專利
- 軟銀巨虧萬億日元,孫正義將何去何從?
- 600億美元的自動駕駛市場,AMD也想在此撈金?
- 適用于惡劣工業(yè)環(huán)境下時限通信以太網(wǎng)物理層解決方案
- 2019年汽車技術(shù)日全新升級開創(chuàng)“4+5”新模式!
- 驍龍845穩(wěn)了 努比亞新機安兔兔跑分超28萬
- 今晚發(fā)布!錘子堅果R1新品發(fā)布會亮點提前看
- RT-H001:可穿戴心率監(jiān)測模塊方案
- 大聯(lián)大電商平臺將推廣BEATZ PPG高集成度脈搏心率監(jiān)測模塊
- 日本電產(chǎn)安薩爾多工業(yè)系統(tǒng)公司推出了新款超快速充電器