static portTASK_FUNCTION(MainTask, pvParameters) { uint16_t msCnt; (void) pvParameters; /* parameter not used */ #if PL_HAS_ACCEL ACCEL_LowLevelInit(); #endif for (;;) { EVNT_HandleEvent(APP_EvntHandler); #if PL_HAS_KEYS && !PL_HAS_KBI KEY_Scan(); /* poll keys */ #endif FRTOS1_vTaskDelay(20/portTICK_RATE_MS); msCnt += 20; if (msCnt > 280) { #if PL_HAS_ULTRASONIC (void)US_Measure_us(); /* Measure distance */ #endif msCnt = 0; } } }
void TaskLoop(void *pvParameters){ int16_t x,y,z; #if PL_HAS_ACCEL ACCEL_LowLevelInit(); #endif (void)pvParameters; for(;;){ #if PL_HAS_KEYS KEY_Scan(); #endif #if PL_HAS_LINE_SENSOR typ = Line_Detection(); if(typ!=LINE_STATE_NO_LINE){ EVNT_SetEvent(EVNT_LINE); } switch(typ) { case LINE_STATE_LEFT: EVNT_SetEvent(EVNT_LINE_LEFT); break; case LINE_STATE_RIGHT: EVNT_SetEvent(EVNT_LINE_RIGHT); break; case LINE_STATE_AHEAD: EVNT_SetEvent(EVNT_LINE); break; case LINE_STATE_MIDDLE: EVNT_SetEvent(EVNT_LINE); break; case LINE_STATE_NO_LINE: /* No event */ break; case LINE_STATE_LINE: EVNT_SetEvent(EVNT_LINE); break; case LINE_STATE_ERR: EVNT_SetEvent(EVNT_LINE); break; default: /* No event */ break; } #endif #if PL_HAS_ACCEL ACCEL_GetValues(&x,&y,&z); if(z < Z_ACCEL_THRESHOLD){ EVNT_SetEvent(EVNT_ACCEL); } #endif #if PL_HAS_EVENTS EVNT_HandleEvent(APP_EventHandler); #endif FRTOS1_vTaskDelay(5/portTICK_RATE_MS); } }
/* * Task for Handling the Events and the KeyScan. */ static void APPTask(void *pvParameters) { (void)pvParameters; /* not used */ #if PL_HAS_ACCEL //Initialize Accelometer in a task because it used interrupts, which are disabled when the RTOS is not running. ACCEL_LowLevelInit(); #endif for(;;) { #if PL_HAS_EVENTS EVNT_HandleEvent(APP_EventHandler); /* handle pending events */ #endif #if PL_HAS_KEYS && PL_NOF_KEYS>0 KEY_Scan(); /* scan keys */ #endif FRTOS1_vTaskDelay(100/portTICK_RATE_MS); } }
//char status = 0; static portTASK_FUNCTION(T3, pvParameters) { //char* pstatus = (char*)NVMC_GetStatus(); ACCEL_LowLevelInit(); //if(pstatus != NULL) // { // status = *pstatus; // } for(;;) { /* switch(status) { case 0: //LED_Red_On(); //LED_Green_Off(); break; case 1: //LED_Red_Off(); //LED_Green_Off(); break; case 2: //LED_Red_Off(); //LED_Green_On(); break; } */ KEY_Scan(); FRTOS1_vTaskDelay(50); //status = (status+1) % 3; } }
static portTASK_FUNCTION(MainTask, pvParameters) { (void)pvParameters; /* parameter not used */ #if PL_HAS_ACCEL (void)ACCEL_LowLevelInit(); #endif for(;;) { #if PL_HAS_KEYS && !PL_HAS_KBI /* poll keys */ KEY_Scan(); /* poll keys */ #endif EVNT_HandleEvent(APP_HandleEvent); #if PL_HAS_FREEMASTER FMSTR1_Poll(); FMSTR1_Recorder(); #endif #if PL_HAS_ULTRASONIC //(void)US_Measure_us(); #endif FRTOS1_vTaskDelay(20/portTICK_RATE_MS); } }
static portTASK_FUNCTION(T1, pvParameters) { #if PL_HAS_ACCEL ACCEL_LowLevelInit(); #endif #if PL_HAS_REMOTE remoteInit(); #endif #if PL_HAS_ANALOG_JOY AD1_Calibrate(TRUE); CalibXY(); #endif #if PL_HAS_FIGHT FIGHT_Init(); #endif #if REMOTE_WITHOUT_REFLECTANCE FRTOS1_vTaskSuspend(checkRefl); #endif for(;;) { EVNT_SetEvent(EVNT_LED_HEARTBEAT); FRTOS1_vTaskDelay(1000/TRG_TICKS_MS); } }
/*! \brief Initialises module */ void ACCEL_Init(void) { #if !PL_HAS_RTOS /* with an RTOS, the interrupts are disabled here. Need to do this in a task */ ACCEL_LowLevelInit(); #endif }