Verzögerer schrieb:
> ich versuche mich gerade etwas an STM32 Controllern. Irgendwann kommt
> man ja an den Punkt, wo mehrere Sachen quasi-parallel laufen sollen.
>
> Bisher verwende ich "HAL_Delay(1000)" um eine Sekunde zu warten.
Anbei ein kleines Stück Quellcode mit dem man das Warten etwas besser
organisieren kann, ohne dazu gleich irgendwelche Betriebssysteme
aufzufahren, wie es dir bereits angeraten wurde. Ich hab das vor
geraumer Zeit schon mal gepostet, aber das Suchen im Forum scheint eher
unbeliebt zu sein.
Also, zum Prinzip: anstatt mit Warten die Zeit totzuschlagen kann man es
auch andersherum machen: man stellt sich einen Wecker, der nach xxx
Sekunden (oder Stunden oder Millisekunden) klingelt. Da kann man in der
Zwischenzeit was anderes machen oder auf das Klingeln warten - je nach
Gusto. Der Wecker ist hier der Interrupthandler des Timerticks und das
Klingeln ist die Event-Verwaltung, genauer ein Event, der zur rechten
Zeit in die Event-Warteschlange geworfen wird.
Das Beispiel in der ZIP-Datei ist ein Beispiel. Da kommen auch
Event-Codes und Namen von Programmteilen und anderes Zeugs vor, was du
vermutlich nicht brauchst. Du kannst es dir also nach deinem Bedarf
zusammenkürzen und abändern nachdem du das eigentlich recht einfache
Prinzip verstanden hast.
W.S.