void main(void) { /* Write your local variable definition here */ /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/ PE_low_level_init(); /*** End of Processor Expert internal initialization. ***/ LED1_Neg(); WAIT1_Waitms(100); LED2_Neg(); WAIT1_Waitms(100); LED3_Neg(); WAIT1_Waitms(100); LED4_Neg(); WAIT1_Waitms(100); LED1_Off(); LED2_Off(); LED3_Off(); LED4_Off(); CDC_Run(); /*** Don't write any code pass this line, or it will be deleted during code generation. ***/ /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/ for(;;){} /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/ } /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/
void APP_Run(void) { uint16_t i; for(i=0;i<16;i++) { LED1_Neg(); LED2_Neg(); LED3_Neg(); LED4_Neg(); WAIT1_Waitms(50); } SHELL_Init(); if (FRTOS1_xTaskCreate( Task1, /* pointer to the task */ "Task1", /* task name for kernel awareness debugging */ configMINIMAL_STACK_SIZE, /* task stack size */ (void*)NULL, /* optional task startup argument */ tskIDLE_PRIORITY, /* initial priority */ (xTaskHandle*)NULL /* optional task handle to create */ ) != pdPASS) { /*lint -e527 */ for(;;){}; /* error! probably out of memory */ /*lint +e527 */ } if (FRTOS1_xTaskCreate( Task2, /* pointer to the task */ "Task2", /* task name for kernel awareness debugging */ configMINIMAL_STACK_SIZE, /* task stack size */ (void*)NULL, /* optional task startup argument */ tskIDLE_PRIORITY, /* initial priority */ (xTaskHandle*)NULL /* optional task handle to create */ ) != pdPASS) { /*lint -e527 */ for(;;){}; /* error! probably out of memory */ /*lint +e527 */ } if (FRTOS1_xTaskCreate( Task3, /* pointer to the task */ "Task3", /* task name for kernel awareness debugging */ configMINIMAL_STACK_SIZE, /* task stack size */ (void*)NULL, /* optional task startup argument */ tskIDLE_PRIORITY, /* initial priority */ (xTaskHandle*)NULL /* optional task handle to create */ ) != pdPASS) { /*lint -e527 */ for(;;){}; /* error! probably out of memory */ /*lint +e527 */ } if (FRTOS1_xTaskCreate( Task4, /* pointer to the task */ "Task4", /* task name for kernel awareness debugging */ configMINIMAL_STACK_SIZE, /* task stack size */ (void*)NULL, /* optional task startup argument */ tskIDLE_PRIORITY, /* initial priority */ (xTaskHandle*)NULL /* optional task handle to create */ ) != pdPASS) { /*lint -e527 */ for(;;){}; /* error! probably out of memory */ /*lint +e527 */ } FRTOS1_vTaskStartScheduler(); }
static portTASK_FUNCTION(TaskMain, pvParameters ) { byte i; #if PL_HAS_HW_LED byte cntr; #endif /* The parameters are not used. */ (void)pvParameters; #if PL_HAS_WATCHDOG WDOG_Clear(); #endif #if PL_HAS_HW_TOUCHSCREEN TouchScreen_CheckTouchScreenCalibrationData(); #endif BUZ_Init(); #if PL_HAS_UI APP_Init(); #endif #if PL_HAS_HW_LED cntr = 0; LED3_On(); LED4_Off(); #endif for(;;) { #if PL_HAS_HW_TOUCHSCREEN TCHS1_Scan(); #endif #if PL_POLL_KEYS2 KEY2_ScanKeys(); /* poll keys */ #endif i = 10; /* to avoid stalling */ while (EVNT1_EventsPending() && i>0) { EVNT1_HandleEvent(); i--; } #if PL_HAS_HW_LED cntr++; if (cntr == 10) { /* change LED's */ LED3_Neg(); LED4_Neg(); cntr = 0; } #endif #if PL_HAS_AUTO_DEMO #if PL_HAS_FONT_DEMO FRTOS1_vTaskDelay((2*1000)/portTICK_RATE_MS); APP_SetApplicationMode(APP_MODE_FONT_DEMO); FRTOS1_vTaskDelay((10*1000)/portTICK_RATE_MS); #endif #if PL_HAS_ACCEL_DEMO APP_SetApplicationMode(APP_MODE_ACCEL_DEMO); FRTOS1_vTaskDelay((15*1000)/portTICK_RATE_MS); ACCEL_StopAccelDemo(); FRTOS1_vTaskDelay((2*1000)/portTICK_RATE_MS); #endif #if 0 && PL_HAS_TETRIS_DEMO APP_SetApplicationMode(APP_MODE_TETRIS); FRTOS1_vTaskDelay((5*1000)/portTICK_RATE_MS); TETRIS_KillTask(); FRTOS1_vTaskDelay((2*1000)/portTICK_RATE_MS); #endif #if PL_HAS_CUBE_DEMO APP_SetApplicationMode(APP_MODE_3D_CUBE); FRTOS1_vTaskDelay((8*1000)/portTICK_RATE_MS); CUBE_CloseShipWindow(); FRTOS1_vTaskDelay((2*1000)/portTICK_RATE_MS); CUBE_CloseCubeWindow(); FRTOS1_vTaskDelay((2*1000)/portTICK_RATE_MS); #endif //APP_SetApplicationMode(APP_MODE_MAIN_MENU); //FRTOS1_vTaskDelay((5*1000)/portTICK_RATE_MS); heapSize = FRTOS1_xPortGetFreeHeapSize(); #endif FRTOS1_vTaskDelay(50/portTICK_RATE_MS); } /* for */ }
static void APP_EventHandler(EVNT_Handle event) { #if PL_HAS_LINE_SENSOR #endif static uint16_t buzzer = 1000; switch(event){ case EVNT_INIT: LED1_On(); WAIT1_Waitms(100); LED1_Off(); #if PL_HAS_BUZZER BUZ_Beep(1000,400); #endif break; case EVNT_HEARTBEAT: //LED1_Off(); break; case EVNT_SW_A_RELEASED: //BUZ_Beep(2000,2000); break; case EVNT_SW_A_PRESSED: #if PL_HAS_BUZZER BUZ_Beep(1000,10); #if PL_HAS_BATTLE BATTLE_changeState(BATTLE_STATE_WAIT); #endif /* PL_HAS_BATTLE */ #endif break; case EVNT_SW_A_LPRESSED: #if PL_HAS_LINE_SENSOR LED1_Neg(); EVNT_SetEvent(EVNT_REF_START_STOP_CALIBRATION); #endif break; case EVNT_SW_B_PRESSED: LED2_Neg(); LED3_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW B pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_SW_C_PRESSED: LED1_Neg(); LED2_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW C pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_SW_D_PRESSED: LED1_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW D pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_SW_E_PRESSED: LED2_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW E pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_SW_F_PRESSED: LED3_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW F pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_SW_G_PRESSED: LED1_Neg(); LED2_Neg(); LED3_Neg(); #if PL_HAS_SHELL CLS1_SendStr("SW g pressed\n",CLS1_GetStdio()->stdOut); #endif break; case EVNT_REF_START_STOP_CALIBRATION: break; default: break; } }
void APP_Run(void) { int i; FDisp1_PixelDim x, y; LCD1_Init(); LCD1_Clear(); #if 1 GDisp1_DrawFilledBox(0, 0, GDisp1_GetWidth()-1, GDisp1_GetHeight()-1, LCD1_COLOR_WHITE); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(0, 0, GDisp1_GetWidth()-1, GDisp1_GetHeight()-1, LCD1_COLOR_RED); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(0, 0, GDisp1_GetWidth()-1, GDisp1_GetHeight()-1, LCD1_COLOR_GREEN); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(0, 0, GDisp1_GetWidth()-1, GDisp1_GetHeight()-1, LCD1_COLOR_BLUE); GDisp1_UpdateFull(); GDisp1_Clear(); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(0, 0, 128, 128, LCD1_COLOR_RED); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(0, 0, 50, 10, LCD1_COLOR_YELLOW); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_PORTRAIT); GDisp1_DrawFilledBox(0, 0, 100, 20, LCD1_COLOR_YELLOW); GDisp1_UpdateFull(); x = 0; y = 0; FDisp1_WriteString("Portrait", LCD1_COLOR_RED, &x, &y, Helv14_GetFont()); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE); GDisp1_DrawFilledBox(0, 0, 100, 20, LCD1_COLOR_ORANGE); x = 0; y = 0; FDisp1_WriteString("Landscape", LCD1_COLOR_GREEN, &x, &y, Helv14_GetFont()); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_PORTRAIT180); GDisp1_DrawFilledBox(0, 0, 100, 20, LCD1_COLOR_RED); x = 0; y = 0; FDisp1_WriteString("Portrait180", LCD1_COLOR_BLUE, &x, &y, Helv14_GetFont()); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE180); GDisp1_DrawFilledBox(0, 0, 100, 20, LCD1_COLOR_BRIGHT_GREEN); x = 0; y = 0; FDisp1_WriteString("Landscape180", LCD1_COLOR_WHITE, &x, &y, Helv14_GetFont()); GDisp1_UpdateFull(); #if 0 LCD1_OpenWindow(0, 0, (LCD1_PixelDim)(LCD1_GetWidth()-1), (LCD1_PixelDim)(LCD1_GetHeight()-1)); /* window for whole display */ for(i=0;i<500;i++) { LCD1_WriteDataWord(LCD1_COLOR_YELLOW); } LCD1_CloseWindow(); #endif LCD1_Clear(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_PORTRAIT); GDisp1_DrawLine(0, 0, 10, 50, LCD1_COLOR_RED); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE); GDisp1_DrawLine(0, 0, 10, 50, LCD1_COLOR_GREEN); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE180); GDisp1_DrawLine(0, 0, 10, 50, LCD1_COLOR_BLUE); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_PORTRAIT180); GDisp1_DrawLine(0, 0, 10, 50, LCD1_COLOR_WHITE); LCD1_Clear(); //GDisp1_DrawFilledBox(0, 0, 20, 40, LCD1_COLOR_WHITE); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_PORTRAIT180); GDisp1_DrawFilledBox(0, 0, 20, 40, LCD1_COLOR_RED); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE); GDisp1_DrawFilledBox(0, 0, 20, 40, LCD1_COLOR_GREEN); GDisp1_UpdateFull(); LCD1_SetDisplayOrientation(LCD1_ORIENTATION_LANDSCAPE180); GDisp1_DrawFilledBox(0, 0, 20, 40, LCD1_COLOR_BLUE); GDisp1_UpdateFull(); GDisp1_DrawFilledBox(50, 50, 20, 30, LCD1_COLOR_RED); GDisp1_DrawFilledBox(0, 0, 96, 96, LCD1_COLOR_BLUE); GDisp1_DrawBox(0, 0, GDisp1_GetWidth(), GDisp1_GetHeight(), 1, LCD1_COLOR_GREEN); x = 0; y = 0; FDisp1_WriteString("Hello", LCD1_COLOR_GREEN, &x, &y, Helv14_GetFont()); GDisp1_UpdateFull(); float f = sin(f+1); EYES_Init(); for(;;) { EYES_Run(); // SpeedTest(); LED1_Neg(); WAIT1_Waitms(100); LED2_Neg(); WAIT1_Waitms(100); LED3_Neg(); WAIT1_Waitms(100); } #endif }
static void APP_EvntHandler(EVNT_Handle event) { switch (event) { case EVNT_INIT: LED1_On(); WAIT1_Waitms(100); LED1_Off(); break; #if PL_HAS_LED_HEARTBEAT case EVNT_LED_HEARTBEAT: LED3_Neg(); break; #endif #if PL_NOF_KEYS>=1 case EVNT_SW1_PRESSED: if (REF_IsCalibrated()) { STR_Start(); } break; case EVNT_SW1_LPRESSED: #if PL_HAS_LINE_SENSOR LED4_On(); WAIT1_Waitms(500); EVNT_SetEvent(EVNT_REF_START_STOP_CALIBRATION); DRV_Drive_Forward(40); WAIT1_Waitms(300); DRV_Drive_Forward(-60); WAIT1_Waitms(200); DRV_Drive_Forward(0); EVNT_SetEvent(EVNT_REF_START_STOP_CALIBRATION); WAIT1_Waitms(500); if (REF_IsCalibrated()) { LED4_Off(); } break; #endif break; #endif #if PL_NOF_KEYS>=2 case EVNT_SW2_PRESSED: LED2_Neg(); break; #endif #if PL_NOF_KEYS>=3 case EVNT_SW3_PRESSED: LED3_Neg(); break; #endif #if PL_NOF_KEYS>=4 case EVNT_SW4_PRESSED: LED4_Neg(); break; #endif default: break; } }