void main(void) { CAP_BUTTON keypressed_state; int countdownCount; State state = STATE_WELCOME; // Stop WDT WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer //Perform initializations (see peripherals.c) configTouchPadLEDs(); configDisplay(); configCapButtons(); GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "MSP430 H3R0", AUTO_STRING_LENGTH, 51, 32, TRANSPARENT_TEXT); GrFlush(&g_sContext); /* Monitor Capacitive Touch Pads in endless "forever" loop */ while(1) { switch(state) { case STATE_WELCOME: if(checkButtons() & BUTTON1) { state = STATE_COUNTDOWN; } break; case STATE_COUNTDOWN: centerText("3"); configLED1_3(BIT3); wait(COUNTDOWN_TIMER); centerText("2"); configLED1_3(BIT2); wait(COUNTDOWN_TIMER); centerText("1"); configLED1_3(BIT1); wait(COUNTDOWN_TIMER); centerText("GO!"); configLED1_3(BIT3 | BIT2 | BIT1); wait(COUNTDOWN_TIMER); //TODO: next state break; } } }
void main (void) { // Stop WDT WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer _BIS_SR(GIE); runtimerA2(); //Perform initializations (see peripherals.c) configTouchPadLEDs(); configDisplay(); configCapButtons(); CAP_BUTTON keypressed_state; while(1) { switch(state) { case WelcomeScreen: GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "MSP430 HERO!", AUTO_STRING_LENGTH, 51, 22, TRANSPARENT_TEXT); GrStringDrawCentered(&g_sContext, "Press S1 to Start", AUTO_STRING_LENGTH, 51, 42, TRANSPARENT_TEXT); GrFlush(&g_sContext); //Changes the state to Game Starting if button 1 is pressed if (configButtons() == 1) { state = GameStarting; } else state = WelcomeScreen; break; case GameStarting: if (led_on ==1) { GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "3", AUTO_STRING_LENGTH, 51, 22, TRANSPARENT_TEXT); GrFlush(&g_sContext); configLEDs(3); led_on = 0; } else if (led_on ==2) { GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "2", AUTO_STRING_LENGTH, 51, 22, TRANSPARENT_TEXT); GrFlush(&g_sContext); configLEDs(2); led_on = 0; } else if (led_on == 3) { GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "1", AUTO_STRING_LENGTH, 51, 22, TRANSPARENT_TEXT); GrFlush(&g_sContext); configLEDs(1); led_on = 0; } else if (led_on == 4) { GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, "GO", AUTO_STRING_LENGTH, 51, 22, TRANSPARENT_TEXT); GrFlush(&g_sContext); configLEDs(0); led_on = 0; } break; } } }