Можем ли мы создать семафор для нескольких условий

У меня есть ситуация в моем приложении, где на основе различных уведомлений я должен поставить семафор. Дело в том, что если я получу уведомление типа 1, семафор должен получить другую часть кода.

Пример:

void funcNotify(int notify)
{
   switch(notify)
   {
      case type1:
         Rtos_SemaphorePut(nitificationSemaphore, 1)
         break;
      case type2:
         Rtos_SemaphorePut(nitificationSemaphore, 1)
         break;
      case type3:
         Rtos_SemaphorePut(nitificationSemaphore, 1)
         break;
      default:
         break;
   }
}

Поэтому мой вопрос: можем ли мы создать семафор, который можно использовать для нескольких уведомлений? И в зависимости от того, какой тип уведомления я получу, я выполню для этого необходимый код.

1 ответ

Решение

Группы freeRTOS event_groups дали мне решение этой проблемы. Я мог бы установить отдельные биты для каждого уведомления. Благодарю.

Другие вопросы по тегам