历史上的今天
今天是:2024年10月09日(星期三)
2018年10月09日 | 在设计中断时,这九个注意事项要记住!
2018-10-09 来源:eefocus
中断函数不能进行参数传递
中断函数没有返回值
在任何情况下都不能直接调用中断函数
中断函数使用浮点运算要保存浮点寄存器的状态。
如果在中断函数中调用了其它函数,则被调用函数所使用的寄存器必须与中断函数相同,被调函数最好设置为可重入的。
C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容,具体如下:
在程序开始处对ACC、B、DPH、DPL和PSW入栈,结束时出栈。
中断函数未加using n修饰符的,开始时还要将R0~R1入栈,结束时出栈。
如中断函数加using n修饰符,则在开始将PSW入栈后还要修改PSW中的工作寄存器组选择位。
C51编译器从绝对地址8m 3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。
中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明。防止其它程序调用。
在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。一般来说中断服务程序应该做最少量的工作,这样做有很多好处。
首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。
其次它可使中断服务程序的结构简单,不容易出错。中断程序中放入的东西越多,他们之间越容易起冲突。简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。
中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR。
史海拾趣
|
在这我只想发发牢骚……因为我现在就是在闲着,时时刻刻都开着EEWORLD 快毕业了,本来找工作都几乎没什么搭理的,发过好多简历都石沉大海。毕竟我只是专科学历,虽然参加过几次比赛,但感觉这些经历并没给我找工作带来什么的。 ...… 查看全部问答> |
|
C:\\icc\\bin\\imakew -f xiaoche.mak iccavr -c -IC:\\icc\\include\\ -e -l -g -Wa-W C:\\DOCUME~1\\Administrator\\MYDOCU~1\\小车\\xiaoche.c !W C:\\DOCUME~1\\Administrator\\MYDOCU~1\\小车/drv.h(14 ...… 查看全部问答> |
|
在TI-2812开发板上调试485通讯,用串口调试器向下发数据时,RX状态寄存器显示有帧错误,从下望上发数据时,串口调试器接受的数据是错误的,但发送0是接受到的也是0.请高手帮帮忙! … 查看全部问答> |
|
最近在思考一个问题,就是有关SD卡升级的。 我看到过三星发布2442下的SD卡升级,但有个缺陷是只支持FAT格式的小容量卡,而且,在EBOOT里面去读写卡的block、sector,简直有点复杂。 我在想,如果是FAT32格式的(现在基本上都是FAT32格式了)SD卡能 ...… 查看全部问答> |
|
Wince 下用C#实现媒体播放,最好是Media Player的调用。希望有经验的各位前辈随便露两手绝艺,让俺开开眼届。最好有源码!! Wince 下用C#实现媒体播放,最好是Media Player的调用。希望有经验的各位前辈随便露两手绝艺,让俺开开眼届。最好有源码!! … 查看全部问答> |
|
初学者问个简单问题:关于WINXP SP2下的环境配置问题! 小弟的机器是WinXP SP2 HOME EDITION,想问一下,在这个系统下如何配置编译环境? 相关软件:DriverStudio3.2 XP SP1 DDK ...… 查看全部问答> |
|
我在VS2005中建了一个c++的移动设备的MFC,是一个264 的解码器,现在要加一个显示的程序,最好能解一点播一点,本来VC上有源程序,移植后无法使用,现在毕设中,急啊,哪位仁兄能帮我看看用什么方法显示,谢谢,本人菜鸟,不好意思!! ...… 查看全部问答> |
|
我用STM32 控制一个320x240的 TFT屏,需要显示jpg的文件,感觉刷整屏的时候速度很慢;显示bmp文件时刷整屏的时候就很快。STM32是不是不适合解码jpg文件呢?… 查看全部问答> |
|
广大DIY爱好者们,随着你们DIY程度的不断深入,你们的DIY工具是不是也在一点点的增加,随着工具的增加,DIY的水平是不是也在不断地提高,随着水平的不断提高,DIY的作品是不是也是愈加的丰富,显摆的时刻到了! 活动要求: 1、显摆自己所有用于D ...… 查看全部问答> |




