立即执行函数 单片机,外部中断程序,为什么不用写在主程序中?为什么中断函数不在主函数也可以运行?

单片机,外部中断程序,为什么不用写在主程序中?为什么中断函数不在主函数也可以运行?中断主任务集就是中断程序。写在主程序中只能一步一步地执行,不能达到高优先级的目的。所以这是行不通的。0x0000地址是

单片机,外部中断程序,为什么不用写在主程序中?为什么中断函数不在主函数也可以运行?

中断主任务集就是中断程序。

写在主程序中只能一步一步地执行,不能达到高优先级的目的。所以这是行不通的。

0x0000地址是硬件重置后执行程序的条目。0x0003是外部中断项,以此类推。

复位后,将从0x0000自动执行,当外部中断到来时,将从0x0003自动执行。当函数写入中断0时,该函数将根据中断号自动放置在相应的条目上。中断编号0是将此函数放入0x0003(实际上是一条跳转指令)。

如果主程序中未打开中断和启用中断,则0x0003是正常的程序存储空间。

详见下图:

如图所示,中断仅表示两组程序(蓝色和红色)。

在C 中函数指针有什么作用呢,为什么不直接调用函数而要使用函数指针?

可用作回调函数。只需将函数指针作为参数传递给另一个函数,另一个函数就可以在执行期间或执行之后通过该指针调用预置的用户函数。