如果不会在内部触发

If won't trigger inside while

目前我正在尽最大努力编写微控制器。

int main()
{
    init_ports();

    while(1){
        if(gameStatus == 1){
            gameStatus = 2;
            beep(120);
        }
    }
}

是我的主,gameStatus是全局的uint_8。它由按下按钮引起的中断设置。

ISR(INT0_vect){
    if(gameStatus == 0)
        gameStatus = 1; // that works

}

不过主程序根本无法识别 gameStatus。这可能是有原因的吗?

谢谢!

感谢 wildplasser!

改变

uint8_t gameStatus = 0;

进入

volatile uint8_t gameStatus = 0;

成功了。

https://en.wikipedia.org/wiki/Volatile_(computer_programming)