Diskussion:Multitasking

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Im Abschnitt Beispiele für AVR ist _delay_ms(1) in led_blinken() drin. Sollte man das nicht besser in die Hauptschleife in main() tun? Dann wäre auch der "Schönheitsfehler" _fast_ beseitigt: Wenn alle Prozesse eine vernachlässigbar kleine Rechenzeit haben, werden sie einmal pro ms ausgeführt.


Kann man machen, ändert aber nicht wirklich was. Der Ablauf bleibt der gleiche, bestenfalls wird die Struktur etwas verbesert. Es geht "nur" darum das Prinzip zu zeigen, nicht die perfekt ausgetüftelte Lösung.

MfG Falk



Sorry wg. doppeltem Zurücksetzen, hatte mich verklickt. - M. Thomas



Der Link zu "Getting by without an RTOS" war damals nicht mehr gültig und ich hatte ihn merkwürdigerweise auch mit Google nicht wiedergefunden. Darum hatte ich ihn entfernt. Schön dass es ihn doch noch gibt und 'Noshky' ihn eingebaut hat.

900ss


while (!(UCSRA & (1<<UDRE))); // Warte auf freien Sendepuffer vom UART

Wenn das schon ein gutes Beispiel sein soll, dann sollte da doch keine while() in einer Task stehen.


Das ist ein EINFACHES Beispiel, die Zeile reiner Formalismus, der nicht wirklich kritisch ist. Aber ich will ja nicht mauern. Wenn jemand das Beispiel mustergültig machen kann, ohne es unnötig zu verkomplizieren, dann mal los.