EasyManua.ls Logo

Espressif Systems ESP8266EX - Page 20

Espressif Systems ESP8266EX
41 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
!
3. Sample Codes
󰲧󰲧󰲧󰲧//󰲧test_q󰲧is󰲧the󰲧corresponding󰲧array󰲧of󰲧test_task.
󰲧󰲧󰲧󰲧//󰲧(2)󰲧is󰲧the󰲧priority󰲧of󰲧test_task.
󰲧󰲧󰲧󰲧//󰲧Q_NUM󰲧is󰲧the󰲧queue󰲧length󰲧of󰲧test_task.
}
RTOS SDK: creating a new task
#define󰲧Q_NUM󰲧󰲧(10)
xQueueHandle󰲧test_q;
xTaskHandle󰲧test_task_hdl;
void󰲧test_task(void󰲧*pvParameters)
{
󰲧󰲧󰲧󰲧int󰲧*sig;
󰲧󰲧󰲧󰲧for(;;)󰲧{
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧if(pdTRUE󰲧==󰲧xQueueReceive(test_q,󰲧&sig,󰲧(portTickType)portMAX_DELAY)󰲧){
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧vTaskSuspendAll();
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧switch(*sig)
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧{
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧case󰲧1:
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧func1();
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧break;
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧case󰲧2:
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧func2();
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧break;
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧default:
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧break;
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧}
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧free(sig);
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧xTaskResumeAll();󰲧
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧}
󰲧󰲧󰲧󰲧}
}
void󰲧func_send_Sig(void)
{
󰲧󰲧󰲧󰲧int󰲧*evt󰲧=󰲧(int󰲧*)malloc(sizeif(int));
󰲧󰲧󰲧󰲧*evt󰲧=󰲧2;
󰲧󰲧󰲧󰲧if(xQueueSend(test_q,&evt,10/portTick_RATE_MS)!=pdTRUE){
󰲧󰲧󰲧󰲧󰲧󰲧󰲧󰲧os_printf("test_q󰲧is󰲧full\n");
󰲧󰲧󰲧󰲧}
//󰲧It󰲧is󰲧the󰲧address󰲧of󰲧parameter󰲧that󰲧stored󰲧in󰲧test_q,󰲧so󰲧int󰲧*evt󰲧and󰲧int󰲧*sig󰲧can󰲧be󰲧
other󰲧types.
}
void󰲧task_ini(void)
Espressif
! /!16 37
2017.05

Other manuals for Espressif Systems ESP8266EX

Related product manuals