[FreeRTOS] EventGroup (이벤트 그룹)

Event Group을 사용하면 Task간 정보를 주고 받을 수 있다.



API

xEventGroupCreate : 이벤트 그룹 생성

#include "event_groups.h"

EventGroupHandle_t xCreatedEventGroup;

void TaskMain(void)
{
    xCreatedEventGroup = xEventGroupCreate();
    
    // Event Group 할당 실패에 대한 예외처리
    if(xCreatedEventGroup == NULL)
    {
    	
    }
}


xEventGroupSetBits : 이벤트 전달

EventBits_t xEventGroupSetBits(const EventGroupHandle_t xEventGroup,
                               const EventBits_t uxBitsToSet);

// # Parameters
//  xEventGroup : Bit가 설정 될 이벤트 그룹
//  uxBitsToSet : 이벤트 그룹에서 설정 할 비트를 나타내는 비트 값
//                예를들어, 0x0A는 1010(b) 이므로 비트3과 비트1을 설정 함


xEventGroupWaitBits : 이벤트 대기

#include "event_groups.h"

EventBits_t xEventGroupWaitBits( const EventGroupHandle_t xEventGroup,
                                 const EventBits_t uxBitsToWaitFor,
                                 const BaseType_t xClearOnExit,
                                 const BaseType_t xWaitForAllBits,
                                 TickType_t xTicksToWait );

// # Parameters
//   xEventGroup : 이벤트 그룹 핸들
//   uxBitsToWaitFor : 이벤트 대기 비트 패턴
//   xClearOnExit : 이벤트 값을 읽고나서 Clear 시킬 지 여부
//                  pdFALSE(0) -> Clear 시키지 않음
//                  pdTRUE(1)  -> Clear 시킴 ( 주로 사용 )
//   xWaitForAllBits : 이벤트 대기 조건 방법
//                  pdFALSE(0) -> OR  (|) 조건
//                  pdTRUE(1)  -> AND (&) 조건
//   xTicksToWait : 대기 시간, Timeout 되면 이벤트를 기다리지 않고 block에서 깨어나게 됨.


이 블로그의 인기 게시물

Crusader Kings 3 - Converting DNA code using Portrait Editor