什么是ISR?+为什么ISR中使用的变量必须声明为Volatile?ISR这个函数,能带参数+

什么是ISR?+为什么ISR中使用的变量必须声明为Volatile?ISR这个函数,能带参数+,第1张

ISR = Interrupt Service Routine,中断服务子程序

中断服务子程序有可能与程序主体“并行”运行,为防止编译器错误地认为其变量不会同时使用而分配重叠地址,有些情况下会要求ISR中的变量都声明为volatile确保独立分配独立运行不被篡改。

中断号与中断入口地址对应。在编写中断服务程序(ISR)的时候需要知道中断号,用于通知51内核,这个中断服务程序是为了响应哪个中断的。中断号必然对应于中断服务程序的入口地址,而入口地址又与中断向量(InterruptVector)有对应关系,中断号即是中断向量从小到大的编号,从0开始。中断向量0x0000是上电复位,不计入中断向量的编号。特别注意,有些中断源的默认中断优先级并不是中断向量从小到大的编号,默认的中断优先级并不能作为中断号使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11132958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存