// exti initialize
void extix_init(void)
其中幾個關鍵的中斷函式(定義在bsp_int.c)
void bsp_intvectset(cpu_data int_id, cpu_fnct_void isr);//設定中斷向量及處理中斷服務函式,產生中斷時將跳至中斷服務函式的位址
void bsp_inten (cpu_data int_id) //使能指定中斷
void bsp_intdis (cpu_data int_id) //禁用指定中斷(視程式需要)
void bsp_intdisall (void) //禁用所有中斷(視程式需要)
void nvicstr_init(void)
在bsp_int.c中,還有乙個函式可用來設定中斷優先順序,有興趣的讀者可以試試
void bsp_intprioset (cpu_data int_id, cpu_int08u prio) //設定中斷優先順序
這裡的中斷服務函式名可以自己定義,不過也不能太隨便,至少要能看出來是哪個中斷的對接函式
//exti1 interrupt handle
void exti1_irqhandler()
中斷服務函式名需與外部中斷初始化中的bsp_intvectset()第二個引數一致
這裡還需講明一點,函式中用到了osintenter() 與 osintexit(),這裡大概講一下作用
在uc/os-ii中,通常在進入中斷時需要使用osintenter() ;退出中斷前使用osintexit();
在中斷服務函式中使用這對函式,在中斷結束後可進行任務排程,使得系統更加「實時」
若中斷函式的執行不做訊號量處理,對任務沒有觸發作用的,可以忽視不用
這樣就完成了外部中斷的配置,把extix_init()放入系統初始化函式中,執行時待指定的io有高低電平觸發時,將觸發對應的中斷操作
UC OS II的中斷和時鐘
3.1.1 uc os ii 的中斷過程 為了記錄中斷巢狀的層數,uc os ii 定義了乙個全域性變數 osintnesting 兩個重要函式 osintenter 和osintexit 函式osintenter 的作用就是把全域性變數 osintnesting加1 被用於記錄中斷巢狀層數。voi...
uC OS II的中斷和時鐘
前提 uc os ii是乙個可剝奪型核心,cpu每時每刻都處理優先順序最高的任務。主要內容 1 uc os ii的中斷管理和中斷服務程式的結構 2 uc os ii的系統時鐘及實現方法 3 uc os ii的時間管理服務 延時 取消延時 中斷 停止當前的事,去處理異常要求事件。在系統執行過程中,當系...
外部中斷的使用
stm32學習筆記 外部中斷的使用 中斷對於開發嵌入式系統來講的地位絕對是毋庸置疑的,在c51 微控制器時代,一共只有 5個中斷,其中 2個外部中斷,2個定時 計數器中斷和乙個串列埠中斷,但是在 stm32 中,中斷數量大大增加,而且中斷的設定也更加複雜。今天就將來 一下關於 stm32 中的中斷系...