Forum: Mikrocontroller und Digitale Elektronik vTaskSuspend und vTaskResume bei FreeRTOS


von dumfbacke (Gast)


Lesenswert?

Hallo,

ich habe eine Task (FreeRTOS), den ich so lange schlafen/suspend-mode 
legen möchte bis ein Zeichen per UART empfangen wird. Laut Doku bin ich 
davon ausgegangen, dass es ausreicht, diese Zeile im Task auszuführen, 
um ihn zugleich in den suspend-mode zu setzen:
1
vTaskSuspend(taskHandle);
So weit ich das sehe, befindet er sich danach auch im suspend-mode. Ok.


Nun bekomme ich also einen Zeichen per UART empfangen und führe sofort 
diese Zeile aus:
1
vTaskResume(taskHandle);

Eigentlich sollte nun auch der Task wieder weiter laufen, jedoch 
befindet er sich anscheinend immer noch im suspend-mode. Hat jemand eine 
Idee was ich falsch mache?

von holger (Gast)


Lesenswert?

dumfbacke schrieb:
> Hat jemand eine Idee was ich falsch mache?

Ja, liefere mehr Infos ab.

von Torsten S. (t7890)


Lesenswert?

Normalerweise macht man so etwas, indem man in dem jeweiligen Task 
blockierend auf eine Semaphore wartet, die dann von der Interruptroutine 
freigegeben wird.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.