/****************************************************************************** Function: void APP_Tasks ( void ) Remarks: See prototype in app.h. */ void APP_Tasks ( void ) { /* Check the application's current state. */ switch ( appData.state ) { /* Application's initial state. */ case APP_STATE_INIT: { break; } /* The running state. Get value from the queue and output character * if necessary */ case APP_STATE_OUTPUT: { //stopEverything(); //Receive Information from the Queue #ifdef MACRO_DEBUG debugChar(0x03); #endif //Number of elapsed ms. unsigned int ms; BaseType_t received = xQueueReceive(appData.local_q , &ms, portMAX_DELAY); //If not received, stop and turn on LED. if(received == pdFALSE) { stopEverything(); } //Read a value from the xQueue every 10ms unsigned char sensorRead; BaseType_t sensorReceived; sensorReceived = xQueueReceive(appData.sensor1_q , &sensorRead, portMAX_DELAY); //debugChar(sensorRead); #ifdef MACRO_DEBUG debugChar(0x04); #endif //If not received, stop and turn on LED. if(sensorReceived == pdFALSE) { stopEverything(); } //Once the Task runs once, restart the ISR to read values PLIB_INT_SourceEnable(INT_ID_0, INT_SOURCE_ADC_1); //SendUSARTMsgToMsgQ("My name is Andrew"); break; } /* The default state should never be executed. */ default: { /* TODO: Handle error in application's state machine. */ break; } } }
void MESSAGING_TASK_Initialize ( void ) { /* Place the App state machine in its initial state. */ msg_taskData.state = MESSAGING_TASK_STATE_INIT; /* TODO: Initialize your application's state machine and other * parameters. */ msg_taskData.sendMsg_q = xQueueCreate(50, sizeof(unsigned char)); if(msg_taskData.sendMsg_q == 0) { stopEverything(); } msg_taskData.receiveMsg_q = xQueueCreate(50, sizeof(unsigned char)); if(msg_taskData.sendMsg_q == 0) { stopEverything(); } //stopEverything(); /* Initialization is done, allow the state machine to continue */ msg_taskData.state = MESSAGING_TASK_STATE_RUN; #ifdef MACRO_DEBUG debugChar(0x09); #endif //stopEverything(); }
void APP_Initialize ( void ) { //stopEverything(); /* Place the App state machine in its initial state. */ appData.state = APP_STATE_INIT; /* TODO: Initialize your application's state machine and other * parameters. */ //Create the queue appData.local_q = xQueueCreate(10, sizeof(unsigned int)); //Ensure queue was created. If not, do not continue and turn on LED if(appData.local_q == 0) { stopEverything(); } appData.sensor1_q = xQueueCreate(100, sizeof(unsigned char)); if(appData.sensor1_q == 0) { stopEverything(); } //stopEverything(); //Create the timer appData.local_timer = xTimerCreate( "50msTimer", 50 / portTICK_PERIOD_MS, pdTRUE, 0, vTimerCallback ); //Ensure timer was created. If not, do not continue and turn on LED if(appData.local_timer == 0) { stopEverything(); } BaseType_t started = xTimerStart(appData.local_timer, 0); //Ensure the timer started successfully. If not, do not continue and turn // on LED if(started == pdFAIL) { stopEverything(); } //Setup AD Driver SYS_INT_SourceEnable(INT_SOURCE_ADC_1); DRV_ADC_Initialize(); DRV_ADC_Open(); DRV_ADC_ChannelScanInputsAdd(ADC_INPUT_SCAN_AN0 | ADC_INPUT_SCAN_AN1|ADC_INPUT_SCAN_AN2); PLIB_ADC_MuxAInputScanEnable(ADC_ID_1); DRV_ADC_Start(); /* Initialization is done, allow the state machine to continue */ appData.state = APP_STATE_OUTPUT; }
SDLAudio::~SDLAudio() // Destructor { stopEverything(); Mix_CloseAudio(); }