Blink mit Multitasking

Verwenden Sie das BDB (book development board) zur Ausarbeitung des Beispiels.

Erstellen Sie unter FreeRTOS einen Task, der die LED_PUSH im Sekundentakt blinken lässt. Ein zweiter Task soll die LED_PULL ebenso im Sekundentakt blinken lassen.

Implementieren Sie nun in einem dritten Task eine Behandlung der beiden Taster. Beim Drücken des linken Tasters (SW2BOOT) soll das Blinked der LED_PULL verlangsamt, beim Drücken des rechten Tasters (SW3APP) beschleunigt werden.

Die Lösung soll iterativ verbessert/geändert werden (Verwenden Sie bedingte Compilierung (#ifdef), um zwischen den Lösungen per menuconfig zu wechseln):

  • Verwenden Sie im ersten Ansatz globale Variable zur Übergabe des Tastendrucks
  • Im zweiten Ansatz soll die globale Variable über einen Semaphor geschützt und synchronisiert werden
  • Schließlich soll das Ereignis über eine FreeRTOS Queue zugestellt werden