目前我正在努力编写微控制器。
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。这有什么原因可以吗?
谢谢!
答案 0 :(得分:2)
感谢wildplasser!
更改
uint8_t gameStatus = 0;
到
volatile uint8_t gameStatus = 0;
做了这个伎俩。
https://en.wikipedia.org/wiki/Volatile_(computer_programming)