目前我正在尽我最大的努力编程一个微控制器。

int main()
{
    init_ports();

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

是我的主打,游戏状态是一个全球性的单元8。它由按下按钮引起的中断来设置。
ISR(INT0_vect){
    if(gameStatus == 0)
        gameStatus = 1; // that works

}

但主播根本不认识游戏状态。这有什么原因吗?
谢谢!

最佳答案

感谢wildplasser!
改变

uint8_t gameStatus = 0;

进入之内
volatile uint8_t gameStatus = 0;

成功了。
https://en.wikipedia.org/wiki/Volatile_(computer_programming)

关于c - 如果一会儿不会触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41025951/

10-15 00:35