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