Event Groups sind oft effizienter und flexibler, weil du mehrere Bits für verschiedene Tasks oder Ereignisse nutzen kannst. Du kannst damit auch mehrere Barrieren logisch aufbauen. Beispiel:
EventBits_t uxBits;
uxBits = xEventGroupWaitBits(
event_group,
TASK1_BIT | TASK2_BIT | TASK3_BIT,
pdTRUE, // Clear bits on exit
pdTRUE, // Wait for ALL bits
portMAX_DELAY);
Das ersetzt eine Barrier sauber, wartungsfreundlich und mit Timeout-Option.