AVR 程序里想打开全局中断,为什么用sei()之后,再执行一条就又回到程序开始了,不想回去怎么解决?

AVR 程序里想打开全局中断,为什么用sei()之后,再执行一条就又回到程序开始了,不想回去怎么解决?,第1张

检查下是否有中断被使能却为巧慧编写中断服务函数

或者为每个中断答宽逗源编写空的服务函数

原因是AVR中断服务向量在单片机的低段,与main函数清卖,处在相近位置,如无中断服务函数,据会跳到主函数中,这个与中用的编译器也有关系,winavr(gcc) , 就会这样。

在给你推荐一个调试方法,分块屏蔽sei() 前面的程序语句以方便定位,误使能中断的位置。

个人意见仅供参考,如若有误欢迎批评指正。

首先:楼主干嘛要用protues仿真呢ICCAVR的AVR STUDIO就可以仿真的啊,好像很少有用protues仿真AVR的,一般是AVR STUDIO的歼闷;其次:楼主还没有区分开改唤51系列单片机和AVR的区氏歼弯别,个人认为是定时方面出了问题(没细看),楼主还是仔细检查下,再下载到开发板看看效果吧

估计你是把GCC编则银兆译的代码直接复制粘搏简贴到ICC下面编译了,所以才会报错缺这个文件。

建议你再找示例代码的时候在后面加一个ICC,比如搜索孙租IO的示例代码时候搜索“AVR GPIO ICC”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12426387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存