为什么不能退出while循环?

发布于 2023-03-01 19:41:32

用W806的官方定时器deom程序。加入一行while语句,如下:
MyTime.ISR_1ms=0;
while(MyTime.ISR_1ms < 20)
{

if(MyTime.ISR_1ms >= 10)
{
break;
}

}
定时器中断里面MyTime.ISR_1ms++;
居然不能退出while循环,这是被优化了???
微信截图_20230301194043.png

查看更多

关注者
0
被浏览
2.3k
2 个回答
W806
W806 2023-03-02
这家伙很懒,什么也没写!

把优化等级改成-O0,就可以了

ZYQ
ZYQ 2023-03-02
我已不再支持W80X任何相关问题的回复,请大家不要私信,有问题找 isme 谢谢

中断里的变量值的改变,一般需要加上 volatile 作为修饰

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览