微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C51中断之感受

C51中断之感受

时间:11-25 来源:互联网 点击:

中断给及时处理突发事件带来了方便.但也带来的风险!设置好中断,写好中断程序是不是就万事大吉了那?那肯定不是.

如果中断程序是一个独立程序来处理一个独立事件,不和任何程序传递数据和关联.这样的中断带来的麻烦相对较少.而且也容易发现.比如响应中断工作与延时会让延时函数变的不准确等问题.

如果中断程序它和其它函数之间有数据传递和关联.那就要特别小心了.比如中断程序中要改变一个标志位的状态.另外一个函数里要判断这个标志位,根据标志位的状态做一些处理.而这个判断表达式又比较长,要由多个标志位参与,那么这个判断标志位的逻辑语句就要尽量精简.而且要考虑好逻辑优先级!中断事件随时发生,那也就以为可以随时打断正在执行的任务.当然也可以打断正在执行的判断逻辑语句.如果整个逻辑语句比较长,当执行了一半被中断打断,而中断程序里又要改变这个逻辑语句中没有执行的标志位,那么这个逻辑语句就失去了应有的作用,从而出错.所以在写程序时就要考虑到任何一个地方被中断打断后会发生什么样的情况!否则就会使程序存在隐患.这样的隐患很不好发现.

很多文章都提出中断函数要尽量短小.能在主程序里处理的就不要放在中断的程序里.这观点没有错,但要灵活掌握。如果不是太复杂的程序那就尽量让中断程序来完成.这样可以少用标志位和逻辑语句.程序反而更简洁.而且比较稳定.

程序中下降沿触发中断使用的很多,在使用中如不加抗干扰措施,那么中断很容易被干扰触发!从而出现错误!在中断程序起始处加个延时,延时后判断一是不是仍是低电平,是低电平运行下面的程序,否则就退出中断处理程序.这样做的优点就是不增加任何硬件成本低.但会降低程序的效率!在INT0(INT1)脚对正电源接一小瓷介电容可显著的提高抗干扰能力.有了电容就不用在中断程序中加延时了!这两种方法自我感觉外接电容的方法更佳.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top