Могу ли я изменить _delay_ms(); для проверки нажатия клавиши? Если да, то как?
У меня есть проблема, когда _delay_ms (); встает у меня на пути. Он в основном ждет, пока он не будет завершен, а затем запускает другой код. Так есть ли какой-нибудь способ заставить меня читать клавиатуру в _delay_ms();? Я работаю в AtmelStudio.
Вот мой код:
int EndOfGame() { char key; int result = 1; key = KBD_GetKey(); //I initially tried this: //display_msg = DSIP_END_SCORE; //if (key == BTN_OK) return result; //_delay_ms(2000); int i, countdown; for(i = 0; i<1000 && key==0; i++){ countdown = 0; display_msg = DISP_REFRESH_ALL; //refresh screen display_msg = DSIP_END_SCORE; //displays end score while(countdown++ <= 1000) if (key == BTN_OK) return result; _delay_ms(1); if (key == 0) _delay_ms(9000); //_delay_ms(10); //display_msg=DSIP_END_SCORE; //if (key == BTN_OK) return result; //return result; } return result; }
Что я уже пробовал:
Я пытался:
display_msg = DSIP_END_SCORE; _delay_ms(10000); if (key != 0){ switch (key) { case BTN_OK: return result; break; } }
Richard MacCutchan
Вы можете изменить время задержки или полностью удалить его.