c語言主函數(shù)調(diào)用函數(shù) 單片機(jī),外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運(yùn)行?
單片機(jī),外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運(yùn)行?以51單片機(jī)為例說明亞帆的觀點(diǎn):中斷是指中斷正在進(jìn)行的任務(wù),以執(zhí)行更緊急的任務(wù)。顯然,至少需要兩套程序,一套主程序和一
單片機(jī),外部中斷程序,為什么不用寫在主程序中?為什么中斷函數(shù)不在主函數(shù)也可以運(yùn)行?
以51單片機(jī)為例說明亞帆的觀點(diǎn):
中斷是指中斷正在進(jìn)行的任務(wù),以執(zhí)行更緊急的任務(wù)。顯然,至少需要兩套程序,一套主程序和一套中斷程序。
寫在主程序中只能一步一步地執(zhí)行,不能達(dá)到高優(yōu)先級的目的。所以這是行不通的。
0x0000地址是硬件重置后執(zhí)行程序的條目。0x0003是外部中斷項,以此類推。
復(fù)位后,將從0x0000自動執(zhí)行,當(dāng)外部中斷到來時,將從0x0003自動執(zhí)行。當(dāng)函數(shù)寫入中斷0時,該函數(shù)將根據(jù)中斷號自動放置在相應(yīng)的條目上。中斷編號0是將此函數(shù)放入0x0003(實(shí)際上是一條跳轉(zhuǎn)指令)。
如果主程序中未打開中斷和啟用中斷,則0x0003是正常的程序存儲空間。
詳見下圖:
如圖所示,中斷僅表示兩組程序(藍(lán)色和紅色)。
C語言中能否在一個自定義函數(shù)中調(diào)用另一個自定義函數(shù)?
當(dāng)然!C語言程序最基本的模塊是函數(shù),它規(guī)定任何函數(shù)都可以調(diào)用任何其他函數(shù),包括函數(shù)本身;
1。函數(shù)調(diào)用自身,稱為遞歸;通過遞歸,計算1,2,3的代碼。。。N值:
2。自定義函數(shù)調(diào)用其他自定義函數(shù)的例子:這個例子是主函數(shù)調(diào)用自定義函數(shù)fun2,然后fun2調(diào)用另一個自定義函數(shù)fun1;