现场保护:主要是把一些会有可能会被中断内部改变,或者是中断内部在使用到的数据保存起来,比如8051的CY(C标志位),这个CY在8051的很多计算中都要用到,如果在主程序中用到,在中断中也要用到,那么,如果不保存起来,中断中改变了CY,等到中断返回之后,主程序中的计算就会出错
恢复现场:就是把保存的数据恢复
至于执行中断时要关闭中断,在8051中是没有必要的,因为8051是软件堆栈.
除非你中断设计得非常不合理,比如:定时器2需要1秒时间来完成中断操作,但你又开启了定时器1,10mS中断时间,定时器1的中断等级设定成比定时器2高,这样一来,在执行定时器2中断的时候,它就会不断的被定时器1中断打断,整个的定时器2中断时间可能很长,有时候程序都跑不动
对于其它的一般只有几层的硬件堆栈单片机来说,就要关闭中断,不然就会溢出,程序就跑飞了 |