CH573 遇到一個特別奇怪的問題

主程序while如下:

int main(void)

{

???????? .

?????????.

?????? ? .

????flag = 0;

????while(1)

????{

????????if(flag == 1)

????????{

????????????PRINT("enter flag == 1");

????????????flag = 0;

????????}

????}

}

會有一個中斷,這個中斷只觸發(fā)一次,當(dāng)進(jìn)入這個中斷時,flag=1。問題就出在這之后,使用上面這種while里面,明明flag=1了,但是就是進(jìn)入不了if(flag == 1)里面。但是當(dāng)while里面一個延遲或者語句,當(dāng)中斷使flag=1時,就能夠進(jìn)入if(flag == 1)里面了。

? ?while(1)

????{

????? ? ①這里加延遲或者任意語句,nop都行

????????if(flag == 1)

????????{

????????????PRINT("enter?flag == 1");

????????????flag = 0;

????????}

????}

如果單獨(dú)一個if,始終進(jìn)不去,不知道這種事什么原因造成的?

在定義flag這個變量的時候是否添加了關(guān)鍵字volatile呢。


謝謝?TECH_Hy?加了之后就沒問題了!請問這是什么原理


關(guān)于volatile的使用可以百度一下看看。


謝謝?TECH_Hy。了解了


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频