完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
中断函数不能进行参数传递
中断函数没有返回值、 在任何情况下都不能直接调用中断函数 中断函数使用浮点运算要保存浮点寄存器的状态。 如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同,被调函数最好设置为可重入的。 C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下: ○ 在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。 ○ 中断函数未加using n修饰符的,开始时还要将R0~R1入栈,结束时出栈。 ○ 如中断函数加using n修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。 C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其它程序调用。 在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。一般来说中断服务程序应该做最少量的工作,这样做有很多好处。 首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。 其次它可使中断服务程序的结构简单,不容易出错。中断程序中放入的东西越多,他们之间越容易起冲突。简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。 中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR。、 以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、Python、安卓等。想学习的你和我联系预约就可以免费听课了。宋工Q35--24-65--90-88 Tel/WX:173--17--95--19--08 |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
1092 浏览 0 评论
3044 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9411 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2900 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2305 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 02:40 , Processed in 0.511839 second(s), Total 36, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2764