关于MSP430中断、中断嵌套的一些注意事项
时间:12-01
来源:互联网
点击:
1、MSP430默认的是关闭中断嵌套的,除非在一个中断程序里面再次开启了总中断EINT();2、当进入中断程序时,只要不在中断中再次开中断,则总中断总是关闭的,此时如果来中断,不管中断的优先级高还是低,都不执行。
3、如果在中断A中开放了总中断,则可以响应之后到来的中断B(无论B的优先级是高还是低),B执行完了,再继续执行A。
这里,进入中断B之后,总中断同样也会关闭的。如果中断B执行的过程中,还需要执行中断C,则此时也要在中断B中开放总中断。
若不需要响应中断,则不用开放总中断。B执行完以后,跳出中断程序,进入A程序执行的时候,总中断会自动打开。
4、若在中断之中开放了总中断,那么后来的中断同时发生多个的话,则会按照优先级的顺序来执行,即MSP430的中断优先级只有在
多个中断同时到来的时候才会起作用。
5、对于单中断源的中断,
只要响应中断,系统的硬件会自动的清除中断标志位。
对于TA、TB这样的定时器的比较、捕获中断,只要访问TAIV/TBIV标志位就会被自动清除。
对于多源中断,需要手动清除标志位。
比如:P1、P2的中断,需要手动清楚相应的标志位。
如果在这种中断中使用“_EINT();”,开中断,而在打开中断之前,没有进行原来中断标识位的清除工作,就会有相同的中断
不断的进行嵌套。而导致堆栈溢出引起复位,所以在这类中断中,必须先清除标志位,再打开中断开关。要不然等着死机吧。
MSP430中断中断嵌 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)