FreeRTOS学习7--事件标志组

来源:互联网 发布:js获取对象的第一个值 编辑:程序博客网 时间:2024/06/05 19:32
EventGroupHandle_t EventGroupHandler = NULL;    /*定义事件标志组*/EventGroupHandler=xEventGroupCreate();      /*创建事件标志组*/#define EVENTBIT_0  (1<<0)              #define EVENTBIT_1  (1<<1)#define EVENTBIT_ALL    (EVENTBIT_0|EVENTBIT_1)//LED0void led0_task(void *pvParameters){    while(1)    {        LED0=!LED0;         vTaskDelay(2000);        xEventGroupSetBits(EventGroupHandler,EVENTBIT_0);/*第0位写1*/        LED0=!LED0;         vTaskDelay(2000);    }}   void led1_task(void *pvParameters){    while(1)    {        LED1=!LED1;         vTaskDelay(1000);        LED1=!LED1;         vTaskDelay(1000);        LED1=!LED1;         vTaskDelay(1000);        LED1=!LED1;         xEventGroupSetBits(EventGroupHandler,EVENTBIT_1);/*第1位写1*/        vTaskDelay(1000);    }}void led2_task(void *pvParameters){    EventBits_t MyEventBits;    while(1)    {        MyEventBits = xEventGroupWaitBits(EventGroupHandler,EVENTBIT_ALL,pdTRUE,pdFALSE,portMAX_DELAY);         /*             EventGroupHandler 事件组名字             EVENTBIT_ALL 指定要等待的事件bit,本次为bit0|bit1             pdTRUE 退出函数前清除事件标志             pdFALSE 任意一个事件或者时间到后都将返回,否则阻塞             portMAX_DELAY 无事件发生无限阻塞         */        printf("MyEventBits = %#x\r\n",MyEventBits);    }}/*******************************            运行结果MyEventBits = 0x1MyEventBits = 0x2MyEventBits = 0x1MyEventBits = 0x2        ...*******************************/
原创粉丝点击