hi Reinhard,
dann wird deine main-loop Routine aber auch ganz schön lang ... hmm naja,
die E(x)-Funktionen kommen ja nur im falle der variablendeckung ins spiel,
ja das kann klappen.
die avrs haben keine interrupt prioritätslisten geb ich noch zu bedenken,
ein überschneiden würd ich halt versuchen zu vermeiden, aber das haste
ja auch schon erkannt.
ich würd die e(x) funktionen doch in subprozeduren packen und dann von
der main-loop-routine aus starten, das macht den code etwas übersichtlicher,
an der funktion selbst ändert sich dadurch ja nix, aber du kannst die
funktionsaufrufe von jedem teil des listings aus starten, was das debuggen
einfacher macht und gibt ne bessere b-note für stil
aus den sub-prozeduren heraus werden die interrupts genau so wie aus der
main-loop heraus angesprungen.
im übrigen haste nen sekündlichen timerüberlauf, da muß die subprozedur
schon sehr lang sein, das die in der zeit nicht abgearbeitet werden kann.
auch ne alternative zu if then:
Syntax
SELECT CASE var
CASE test1 : statements
[CASE test2 : statements ]
CASE ELSE : statements
END SELECT
Remarks
Var Variable. to test
Test1 Value to test for.
Test2 Value to test for.
You can test for conditions to like:
CASE IS > 2 :
Another option is to test for a range :
CASE 2 TO 5 :
Lesezeichen