打印
[其他产品]

while时不定时的自动退出

[复制链接]
904|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2025-1-15 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发环境:iccavr 7.22 变量定义 unsigned int plss0=0; 中断程序: if(plss0)plss0--; 主程序: while(plss0) { ; } 在这里 有时候plss0不为0就退出来了! 是不是是因为 变量为int型?这个问题该如何解决?

使用特权

评论回复
沙发
elephant00| | 2025-1-15 15:45 | 只看该作者
使用全局中断禁用

使用特权

评论回复
板凳
七毛钱| | 2025-1-15 16:00 | 只看该作者
检查编译器的优化设置,并尝试关闭优化或使用特定的编译器指令来防止优化。

使用特权

评论回复
地板
两只袜子| | 2025-1-15 18:00 | 只看该作者
如果中断的优先级较低或中断响应有延迟,主程序可能会在中断有机会执行 plss0-- 之前多次检查 plss0 的值。

使用特权

评论回复
5
jcky001| | 2025-1-15 22:00 | 只看该作者
硬件问题或外部干扰

使用特权

评论回复
6
cr315| | 2025-1-15 23:00 | 只看该作者
编译器或硬件的bug

使用特权

评论回复
7
稳稳の幸福| | 2025-1-19 20:07 | 只看该作者
volatile 关键字用一下试试。

使用特权

评论回复
8
小灵通2018| | 2025-1-20 10:24 | 只看该作者
IAR开发方便还是用MPLAB开发方便

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

689

主题

3287

帖子

0

粉丝