C51中断之感受
中断给及时处理突发事件带来了方便.但也带来的风险!设置好中断,写好中断程序是不是就万事大吉了那?那肯定不是.
如果中断程序是一个独立程序来处理一个独立事件,不和任何程序传递数据和关联.这样的中断带来的麻烦相对较少.而且也容易发现.比如响应中断工作与延时会让延时函数变的不准确等问题.
如果中断程序它和其它函数之间有数据传递和关联.那就要特别小心了.比如中断程序中要改变一个标志位的状态.另外一个函数里要判断这个标志位,根据标志位的状态做一些处理.而这个判断表达式又比较长,要由多个标志位参与,那么这个判断标志位的逻辑语句就要尽量精简.而且要考虑好逻辑优先级!中断事件随时发生,那也就以为可以随时打断正在执行的任务.当然也可以打断正在执行的判断逻辑语句.如果整个逻辑语句比较长,当执行了一半被中断打断,而中断程序里又要改变这个逻辑语句中没有执行的标志位,那么这个逻辑语句就失去了应有的作用,从而出错.所以在写程序时就要考虑到任何一个地方被中断打断后会发生什么样的情况!否则就会使程序存在隐患.这样的隐患很不好发现.
很多文章都提出中断函数要尽量短小.能在主程序里处理的就不要放在中断的程序里.这观点没有错,但要灵活掌握。如果不是太复杂的程序那就尽量让中断程序来完成.这样可以少用标志位和逻辑语句.程序反而更简洁.而且比较稳定.
程序中下降沿触发中断使用的很多,在使用中如不加抗干扰措施,那么中断很容易被干扰触发!从而出现错误!在中断程序起始处加个延时,延时后判断一是不是仍是低电平,是低电平运行下面的程序,否则就退出中断处理程序.这样做的优点就是不增加任何硬件成本低.但会降低程序的效率!在INT0(INT1)脚对正电源接一小瓷介电容可显著的提高抗干扰能力.有了电容就不用在中断程序中加延时了!这两种方法自我感觉外接电容的方法更佳.
C51中 相关文章:
- interrupt和using在C51中断中的使用(11-26)
- 关于C51的中断编程的一点探讨(转)(11-23)
- C51 中断接收 G代码 并发送回去 by mingwen(11-18)
- 深入C51中断向量表(11-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)