TC275-中断
因在TIM寄存器TIEM模式下用到中斷,因此學習TC275中斷的工作過程。
中斷處理函數,該函數調用三個 參數,后兩個分別為中斷服務者CPU0和中斷優先級。調用中斷向量表只需要優先級就可以了,可以直接地址偏移得到中斷入口。第一個參數就不是我們之前說的地址空間了,事實上該參數調用的是中斷服務函數。
IFX_INTERRUPT(STM_Int0Handler, 0, ISR_PRIORITY_STM_INT0);
中斷代碼如下:
IFX_INTERRUPT(STM_Int0Handler, 0, ISR_PRIORITY_STM_INT0);
void STM_Int0Handler(void)
{boolean interruptState = IfxCpu_disableInterrupts();IfxStm_clearCompareFlag(g_Stm.stmSfr, g_Stm.stmConfig.comparator);// 100000000/1000, TimeConst_1s = stmFrq = 100 000 000IfxStm_increaseCompare(g_Stm.stmSfr, g_Stm.stmConfig.comparator, (100 *1000000*timerINT_us));IfxCpu_restoreInterrupts(interruptState);IfxCpu_enableInterrupts();rt_OneStep();g_Stm.counter++;if (g_Stm.counter > 2) {g_Stm.counter = 0;}
}
在中斷系統中填寫中斷信息,且有額外的中斷處理函數實現真正的中斷處理。
直接在系統中斷中進行中斷處理時STM_Int0Handler是隨便定義的。
額外定義中斷函數,則函數名為系統中斷函數的參數,可實現中斷處理函數的調用。通過系統中斷查到中斷地址,然后直接跳轉到額外定義的中斷處理函數,占用系統中斷的僅僅是查詢,減少系統中斷的調用。
總結
- 上一篇: Spring Boot 2.X 来临,本
- 下一篇: CocosCreator之KUOKUO带