為什麼不能退出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
被浏覽
1.5k
2 個回答
W806
W806 2023-03-02
這家夥很懶,什麼也沒寫!

把優化等級改成-O0,就可以了

ZYQ
ZYQ 2023-03-02
我已不再支持W80X任何相關問題的回複,請大家不要私信,有問題找 isme 謝謝

中斷裡的變量值的改變,一般需要加上 volatile 作為修飾

撰寫答案

請登錄後再發布答案,點擊登錄

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽