单片机开发过程中,很多时候都需要用到中断,不管是内部的还是外部的,但是在使用中断的时候一定要注意到中断之后,其程序的运行状态。尤其是涉及时序的。
1、时序操作
比方说,程序中要对外部EEProm进行读写,例如24C02,这是典型的涉及时序问题程序,这个时候,大家可得注意,当你在对24C02进行读写的时候,就应该禁止中断,因为这个时候中断的发生会影响时序,进而产生读写错误,造成不可知的后果。
2、定时器中断
很多时候,我们会用到定时器中断,用来计时。我们知道要是我们把相关的计时程序写到中断服务程序中,会占用更多的时间,影响主程序执行,很多时候我们会选择把相关计数的程序放到主程序中执行。这个时候需要注意,要是主程序的执行时间大于中断程序中定义的计时变量,就会出现计时不准确的问题。
比方说,定时器1ms中断一次,中断服务程序里面有个变量time计数一次,主程序中,对time进行检测,要是time大于等于10则启动另外一个计数变量,这个时候要是主程序循环的周期大于1ms就会计数不准确。