请问如何解决AVR中断冲突的问题
熟悉AVR的人都知道,AVR的中断硬件不能嵌套,如果同时多个中断同时触发,优先执行高中断优先级。那么很有可能掉了低优先级中断。请问大家在用AVR设计产品,用到多个中断时是如何避免这个问题的! 1、请准确定义,什么叫做“AVR的中断硬件不能嵌套”——AVR中断处理程序中写入“asm("sei");”就可以开启嵌套
2、同时多个中断触发,高优先级执行,但是“很有可能掉了低优先级中断”需要明确的情况定义——你觉得你遇到的什么情况会导致这种状态?不能想当然。如果低优先级中断重复发生的频率不是很高,也不会丢。
3、解决方法A:治标不治本——加大堆栈,中断开嵌套。
解决方法B:搞清楚为什么要嵌套,避免不必要的嵌套,修改系统设计和代码结构,有效控制嵌套深度。 回复【1楼】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------
M16的片子,要到的中断有外部中断0,外部中断1,串口接收与发送中断,定时器中断2,项目基本完工了,好算稳定!谢谢你的关注!!! 为什么用这么多中断呢?都中断了,主程序跑啥呢?还有为什么不用马潮老师的状态机呢?
页:
[1]