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

ワイルドプラッサーに感謝!

変化

uint8_t gameStatus = 0;

の中へ

volatile uint8_t gameStatus = 0;

トリックをしました。

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

于 2016-12-07T19:55:19.353 に答える