![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Joe! > Könnte es sein, wenn im Programmablauf gerade eine Pause stattfindet oder gerade Daten von der O-Micro, O-Macro übertragen werden auf die RS232 Schnittstelle oder auf das LCD Display, sodass dadurch der eine oder andere Impuls nicht mehr erfasst wird im ersten Fall u. daß der 50-malige Aufruf des Interrupts diesen möglichen Fehler vermeidet? In der Tat verzögert ein PAUSE-Befehl das Starten der BASIC-Interruptroutine. Deshalb habe ich im Sourcecode ein "PAUSE 25" in 25-mal "PAUSE 1" aufgeteilt. Während der Ausführung von Assemblerroutinen kann die BASIC-Interruptroutine ebenfalls nicht starten. Aber natürlich wird in beiden Fällen der IRQ-Pin überwacht und eine negative Flanke an diesem Pin detektiert. Die Interruptanforderung wird also ausgelöst und bleibt bestehen. Die BASIC-Interruptroutine wird dann gestartet, sobald die Interpreterschleife wieder ausgeführt wird. Wie bei jedem Mikrocontrollersystem können Interruptanforderungen verloren gehen, wenn sie schneller auftreten als sie verarbeitet werden können. Viel Spaß und Erfolg mit den OM-Mikrocontrollern! Dietmar Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |