0

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

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。这可能是有原因的吗?

谢谢!

4

1 回答 1

2

感谢wildplasser!

改变

uint8_t gameStatus = 0;

进入

volatile uint8_t gameStatus = 0;

成功了。

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

于 2016-12-07T19:55:19.353 回答