立即執(zhí)行函數(shù) 單片機,外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運行?
單片機,外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運行?中斷主任務(wù)集就是中斷程序。寫在主程序中只能一步一步地執(zhí)行,不能達到高優(yōu)先級的目的。所以這是行不通的。0x0000地址是
單片機,外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運行?
中斷主任務(wù)集就是中斷程序。
寫在主程序中只能一步一步地執(zhí)行,不能達到高優(yōu)先級的目的。所以這是行不通的。
0x0000地址是硬件重置后執(zhí)行程序的條目。0x0003是外部中斷項,以此類推。
復(fù)位后,將從0x0000自動執(zhí)行,當(dāng)外部中斷到來時,將從0x0003自動執(zhí)行。當(dāng)函數(shù)寫入中斷0時,該函數(shù)將根據(jù)中斷號自動放置在相應(yīng)的條目上。中斷編號0是將此函數(shù)放入0x0003(實際上是一條跳轉(zhuǎn)指令)。
如果主程序中未打開中斷和啟用中斷,則0x0003是正常的程序存儲空間。
詳見下圖:
如圖所示,中斷僅表示兩組程序(藍色和紅色)。
在C 中函數(shù)指針有什么作用呢,為什么不直接調(diào)用函數(shù)而要使用函數(shù)指針?
可用作回調(diào)函數(shù)。只需將函數(shù)指針作為參數(shù)傳遞給另一個函數(shù),另一個函數(shù)就可以在執(zhí)行期間或執(zhí)行之后通過該指針調(diào)用預(yù)置的用戶函數(shù)。