检查下是否有中断被使能却为编写中断服务函数。
或者为每个中断源编写空的服务函数
原因是AVR中断服务向量在单片机的低段,与main函数,处在相近位置,如无中断服务函数,据会跳到主函数中,这个与中用的编译器也有关系,winavr(gcc) , 就会这样。
在给你推荐一个调试方法,分块屏蔽sei() 前面的程序语句以方便定位,误使能中断的位置。
个人意见仅供参考,如若有误欢迎批评指正。
如果是icc_avr编译的话,我记得如果开启了中断后,但并未申请中断内容(就是没写中断处理函数),会导致中断触发后系统自动复位
我也遇到这样的问题了,sei()之后程序从main函数重新执行了,问题找到了吗?