
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Tom! > Ich meinte, ob man mit einem Goto aus der Interruptroutine heraus an eine andere Stelle des Codes springen kann, von der aus man nicht mehr dahin zurückkehrt, do daß die Interruptroutine niemals auf ihr "Return Interrupt" trifft. Das sollte man nach Möglichkeit vermeiden. Davon abgesehen, wäre es natürlich schon möglich, den GOSUB-Stack aufzuräumen, das Flag IrqAct (Merker fuer "IRQ-Routine ist deaktiviert") zu löschen und dann mit dem Hauptprogramm weiterzumachen. Stellt sich nur die Frage, ob es sinnvoll und in jedem Fall ungefährlich ist, das durch die BASIC-Interruptroutine unterbrochene Hauptprogramm an einer anderen Stelle fortzusetzen. > Geht nur nicht - kannst du da vielleicht auch mal nen Blick drauf werfen? Ich finde um's verrecken keinen Fehler darin. Was für ein Fehler soll im Programm enthalten sein? Ich habe es auf meinem PE-Board getestet. Soweit ich das beurteilen kann, funktioniert das Programm wie beabsichtigt. Ich habe die LED per DEFINE led PORT[2] auf PORT[2] gelegt, so daß PORT[1] für die serielle Schnittstelle frei wurde. Um nachzuvollziehen, welche Programmteile durchlaufen werden, habe ich hinter jedes Label ein PRINT gesetzt, das den Labelnamen ausgibt. Hier das, was das Terminalprogramm empfangen hat. In Klammern jeweils meine Aktionen oder die des Kontrollers... (Start des Programms) #standby (per Taster an PORT[3] eine LOW-Flanke erzeugen) #keypunch #poweron (3 Minuten warten) #endgame (LED an PORT[2] blinkt) (per Taster an PORT[3] eine LOW-Flanke erzeugen) #keypunch #poweron (3 Minuten warten) #endgame (LED an PORT[2] blinkt 1 Minute lang) #standby Viele Grüße Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |