我们可以为多个条件创建信号量吗

Can we create semaphore for multiple conditions

我的应用程序中有一种情况,根据不同的通知,我必须放置一个信号量。事情是,如果我收到类型 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;
   }
}

所以我的问题是我们可以创建一个可用于多个通知的信号量吗?根据我收到的通知类型,我将为此执行所需的代码。

freeRTOS event_groups 给了我这个问题的解决方案。我可以为每个通知设置单独的位。谢谢