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

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

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

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

通族巧启过RET或RETI指令。RET或RETI指令是PASM汇编指令,用于宽拍从ISR(中断服务子程序)中返回执行 *** 作系统。在计算机科学中,子程序是一个大型程序中的某部份代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其兆如他代码,具备相对的独立性。

1、ISR不能有返返森回值,大世迹必须用void;

2、ISR不能传递参数,必须用void;

3、ISR应该是短而高效的,所以不推荐在ISR中做浮点运算,应该只由中断发出消息或滚并置位标志然后由应用层去处理其他工作;

4、ISR中不应该有重入和性能上的问题,因此使用pintf()函数也是不好的。


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

原文地址: https://outofmemory.cn/yw/12389075.html

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

发表评论

登录后才能评论

评论列表(0条)

保存