C4M-OS暫存器,旗標群寫入巨集及快查表法
C4M-OS提供了寫暫存器及旗標群的標準巨集REGPUT(), REGFPT(),並且研究參考MCU手冊中各週邊硬體的暫存器,整理出週邊硬體設定暫存器參數快查表,以及硬體設定旗標群參數快查表。使用者只要依快查表表列動作逐一查詢出參數,套入並呼叫REGPUT(), REGFPT()巨集,即可完成硬體週邊的設定。
本單元週邊硬體為硬體外部中斷,只會用到硬體群標群寫入設定。參考EXTINT硬體設定旗標群蓋寫參數快查表其動作有:設定外部中斷觸發源為輸入,設定外部中斷觸發訊號偵測模式,設定外部中斷禁致能等三個動作。這三個動作各有不同數量的可選擇項目,列在EXTINT硬體設定旗標群可選用數值一欄表。 EXTINT硬體設定旗標群蓋寫參數快查表
EXTINT硬體設定旗標群可選用數值一欄表
使用巨集及快查表來執行外部中斷設定的程序,是依據實際硬體條件查詢快查表,找出適當參數後逐一呼叫巨集執行對應動作。
範例:假設我們要,設定外部中斷4為上緣觸發,且直接致能中斷,則需要呼叫REGFPT()三次分別執行,
1. 設定外部中斷觸發源為輸入:查找EXT INT硬體設定旗標群蓋寫參數快查表,此一動作在外部中斷INT4項下,HWREG_p=&DDRE, Mask=0x10, Shift=4,查找EXTINT設定用可寫入旗標群可選用數值一欄表,得Data=0,
2. 設定外部中斷觸發訊號偵測模式為上緣觸發:查找硬體設定旗標群蓋寫參數快查表,此一動作在外部中斷INT4項下,HWREG_p=&EICRB, Mask=0x03, Shift=0,查找EXTINT設定用可寫入旗標群可選用數值一欄表,得Data=3,(UPEDGE)
3. 設定外部中斷致態:查找EXT INT硬體設定旗標群蓋寫參數快查表,此一動作在外部中斷INT4項下,HWREG_p=&EIMSK, Mask=0x10, Shift=4,查找EXTINT設定用可寫入旗標群可選用數值一欄表,得Data=1,(ON)
所以程式碼為
REGFPT(&DDRE,0x10,4,0); /*Set ExtInt Source Pin as input */
REGFPT(&EICRB,0x03,0,3); /*Set Up Edge Trigger*/
REGFPT(&EIMSK,0x10,4,1); /*Enable ExtInt4 */
:
sei();/*Enable All Int */