Kann geclosed werden, es läuft. Die Hilfsbereitschaft hielt sich ja stark in Grenzen![]()
Kann geclosed werden, es läuft. Die Hilfsbereitschaft hielt sich ja stark in Grenzen![]()
Keep cool, so schnell geht das nicht.
Ich mach das so (sprachunabhängig erstma)
Eine Table von n Entries
Jeder Table-Entry beinhaltet:
Byte Flag 0 = inaktiv 1=aktiv 3=call
Word Counter wieviel Ticks kann auch eine byte sein, wenn das reicht
Word Vector Icall-Label
(addit. parameter) die müssen aber nicht sein
Einen Entry zu erstellen/aktivieren:
durch die Entries durchsteppen
wenn flag = 0, dann:
Counter anzahl Ticks setzen
Vector Sprungadresse setzen
Flag auf 1
Tick-ISR:
durch die Entries durchsteppen
wenn flag = 1, dann:
Counter - 1
Wenn Counter == 0 , Flag = 3 (callable)
next entry
Hauptschleife, jedesmal (kann man optimieren) durch die Entries durchsteppen
Wenn Flag = 3 :
Flag = 0 (deaktivieren)
ICALL Vector
next Entry
Die Trennung ISR / Hauptschleife, damit die aufgerufene Funktion nicht in der ISR läuft.
Im Detail noch u.a. davon abhängig, ob "erledigte" Entries automatsch reaktiviert werden sollen
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen