Ich find's eher nervig, wenn sich dauernd die API ändert: andere Makro-Namen, Dateinamen, Vektor-Namen...
Wer die Doku zu SIGNAL() nicht gelesen hat, tut es wohl auch nicht, wenn das Ding plötzlich ISR() heisst und der Kaiser neue Kleider anhat.
Lange ISR sollte man vermeiden -- vor allem dann, wenn darin nix weiter getan wird, als zu warten, also im Endeffekt NIX zu tun. Kategorisch oder dogmatisch braucht es aber nicht zu sein...
Man kann sein Programm zB so auslegen, daß es 3 Prioritätsstufen hat:
-- die unterste Ebene (normale Ausführungsebene)
-- mittlere Ebene: In einem INTERRUPT, der auch recht ausgewachsen sein darf
-- höchste Ebene: Typischerweise kurze Schnittstellen- und Interrupt-Bedienungen mit SIGNAL()
Den Code aus der mittleren Ebene auf die untere zu ziehen, kann sehr umständlich sein und das Programm schnell undurchschaubar machen. Zudem kommen lästige Synchronisierungen hinzu. Ausserdem verliert man dadurch Echtzeitigkeit, weil sich Code auf Ebene 1 nicht selbst unterbrachen kann. Macht man auf unterer Ebene nen unwichtigen Job und ist zB ne Zeit um, an der man was komplexes zu machen hat, wird's schnell ätzend. Man müsste dan ständig nachschauen, ab's an der Zeit ist, den Cron-Job zu erledigen, ihn gegebenenfalls ausführen und danach die Arbeit wieder aufnehmen.
Mit einer mittelprioren Zwischenschicht steht die Sache jedoch ganz gut da.
Lesezeichen