[求助] 430处理多个中断

chnldq   2011-1-14 21:06 楼主

单独写的每个模块的代码都调通了,但是放在一个Projet下,就卡死了,是不是多个中断冲突了?

或者在一个中断中死循环了,如果是这样的话,请问哪些可屏蔽中断的中断标志需要软件清零?

 

世界因我更美好!

回复评论 (1)

希望可以描述的清晰点
430的中断其实也是有优先级的,可以看中断向量表,根据地址值可以看到优先级的高低,这个个可以在.h文件里面看到。但是430在处理中断的时候有个特点,就是一旦进入了中断服务函数,他就会关闭全局中断,除非你开中断,否则在本中断服务函数执行完之前,不会响应任何其他 的中断,即便是优先级高的中断。中断向量表从0xFFC0到0xFFFF,优先级从低到高,具体的排列参阅你的.h文件。
中断清零的原则是:单中断源的一般响应了中断服务程序中断标志位就自动清零(如SPI,UART,IIC等),而多中断源(IO中断)的则要求查询某个寄存器后中断标志位才会清零。
点赞  2011-1-15 20:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复