Hi, ich würde gerne anstatt eines dauer laufenden Threads für die Bildschirmausgabe eine Art "Memory Watchdog" haben. Ich habe ein Grafikdisplay, welches von einem Thread in FreeRTOS bedient wird. Es gibt eine Text-Konsole, welche mit 8x14 Font 40x17 zeichen ergibt. Ich hätte nun gerne 680 bytes am liebsten so überwacht, dass ein Interrupt ausgelöst wird, sobald eines dieser Bytes verändert wurde. Die ISR setzt ein Flag, dass der Bildschirm geschrieben werden kann und der Thread wird aufgeweckt. CPU ist STM32F103VC. Ist sowas möglich? Wenn ja, wie? Gruss und schonmal Danke fürs Lesen.
Easy schrieb: > ich würde gerne.. Falsche Herangehensweise. Warum arbeitest du nicht mit Events? Jedes Mal, wenn ein anderer Thread irgendwas auf den Bildschirm kritzeln will, sollte er stattdessen einen entsprechende Event in die Queue werfen, den du dann - zusätzlich zu der zentralisierten Ausgabe des Textes - an beliebig vielen anderen Stellen für deine Zwecke auswerten kannst. W.S.
In dem die Routinen, die was in den Bildschirm-Buffer schreiben ein Event oder ein Signal setzen, der Thread der Bildschirmausgabe wartet dann ein WaitForEvent oder WaitForSignal ab und springt dann an sobald der andere Thread was geschrieben hat. Schau in der Doku von FreeRTOS nach was am Besten für Dich ist.
Events oder Signals sind für seinen Zweck doch überdimensioniert. Ein taskNotify ist dafür genau richtig und schön schlank.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.