Forum: Compiler & IDEs Scheduler vs. Flags


von Hans (Gast)


Lesenswert?

Hallo,

ich habe gerade den Scheduler von Peter Danegger getestet und bin 
begeistert über die Möglichkeiten, die sich da bieten. Trotzdem stelle 
ich mir gerade die Frage, ob es bei meinem Projekt überhaupt sinvoll 
wäre einen Scheduler einzusetzen.

Konkret geht es darum, dass ich ca. 10 bis 15 Funktionen habe, die immer 
nach  Ablauf des ihnen zugewiesenen Zeitablaufs aufgerufen werden. Die 
Periodendauer der einzelnen Funktionen reicht hier von 200ms bis 24h. 
Wobei beim Großteil der Funktionen die Periodendauer unter 1 Minute 
liegt. Nicht berücksichtigt dabei sind Wartezeiten für Schreibvorgänge 
am LCD, EEPROM oder Wartezeiten am I2C. Da meine Anwendung trotz dieser 
Wartezeiten problemlos in Echtzeit laufen kann, weiß ich nicht ob es nun 
sinvoller wäre die 14 Flags, sowie andere Wartezeiten per Scheduler zu 
ersetzen, oder das Programm einfach zu belassen wie es ist. Die 
Übersichtlichkeit und Nachvollziehbarkeit wäre mittels Scheduler 
höchstwahrscheinlich um einiges besser, jedoch zweifle ich daran, dass 
die SRAM Belastung (1600 von 4096 Byte) sinken würde.

Welche Alternativen würdet ihr ganz im allgemeinen vorschlagen?

Danke und Grüße Hans

von Peter D. (peda)


Lesenswert?

Ein Scheduler braucht mehr SRAM, wenn alle möglichen Delays auch 
gleichzeitig aktiv sein können, da er noch den Funktionspointer mit 
speichern muß.

Wenn aber z.B. von 100 möglichen Delays nur max 30 gleichzeitig 
auftreten, dann muß der Scheduler nur SRAM für 30 Delays reservieren und 
spart dann.


Aber auch bei mehr SRAM-Belegung kann die bessere Übersichtlichkeit und 
leichtere Änderbarkeit einen Scheduler lohnen.

Insbesondere die Erweiterbarkeit eines Programms, ohne die bereits 
vorhandenen Funktionen zu beeinflussen, ist sehr schön.


Peter

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.