在设计中断时,这九个注意事项要记住!

发布时间:2018-6-4 14:27    发布者:技术小白
中断函数不能进行参数传递

中断函数没有返回值

在任何情况下都不能直接调用中断函数

中断函数使用浮点运算要保存浮点寄存器的状态。

如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同,被调函数最好设置为可重入的。

C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下:

○  在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。

○  中断函数未加using n修饰符的,开始时还要将R0~R1入栈,结束时出栈。

○  如中断函数加using n修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。

C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。

中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其它程序调用。

在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。一般来说中断服务程序应该做最少量的工作,这样做有很多好处。

首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。

其次它可使中断服务程序的结构简单,不容易出错。中断程序中放入的东西越多,他们之间越容易起冲突。简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。

中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR。、

以下课程可免费试听C语言电子PCBSTM32LinuxFPGA、Python、安卓等。
想学习的你和我联系预约就可以免费听课了。宋工Q35--24-65--90-88   Tel/WX:173--17--95--19--08


本文地址:https://www.eechina.com/thread-526725-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表