Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: SLOWMODE und Interrupts Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 18.09.2006 19:43)
 Als Antwort auf Re: SLOWMODE und Interrupts von Feynthefallen - 17.09.2006 22:03
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini, Open-Mini M-Unit, Open-Mini Station, B-Control, sonstige
Hallo Tom!

> while 1
> wend
> Wird das eine Endlosschleife?

Ja, und auch WHILE TRUE : WEND und WHILE ON : WEND werden vom OCBASIC-Compiler zu einer Endlosschleife übersetzt.

Wenn Du genau wissen willst, welchen C-Control-Code der Compiler produziert, kannst Du das Tool CCTOKDIS.EXE einsetzen. Zu CCBASIC-Code dekompilieren läßt sich mittels CCTOKBAS.EXE. Und eine DAT-Datei läßt sich mittels DAT2BIN.EXE in eine Binärdatei umwandeln, die man mittels Hexviewer/Hexeditor untersuchen kann.

> was passiert, wenn eine Interruptroutine auf ein goto statt auf ein Return trifft?

Was meinst Du? Eine BASIC-Interruptroutine muß immer mit RETURN INTERRUPT beendet werden, nicht mit einem normalen RETURN. Innerhalb der Interruptroutine darf natürlich GOTO verwendet werden. Auch GOSUB und RETURN sind zulässig, um Unterprogramme aufzurufen, allerdings wird in der Interruptroutine der gleiche Stack für Subroutinenaufrufe verwendet, wie im Hauptprogramm. Man sollte sich also genau überlegen, wieviele Stackeinträge verwendet werden. Von der OM wird ein GOSUB-Stacküberlauf aber erkannt und die Befehlsausführung entweder abgebrochen oder, wenn RunOnErr=ON gesetzt wurde, eine am Programmbeginn stehende Fehlerbehandlungsroutine des Anwenders aufgerufen. Siehe ERR und RunOnErr in der OM-Doku.

> kann die OM während des Slowmodes interrupts abfangen?

Beim Befehl SLOWMODE wird vom OM-Betriebssystem der Assemblerbefehl STOP ausgeführt. Bei den 68HC08-Kontrollern existiert der WAIT- und der STOP-Modus, um Strom zu sparen. Im Kontrollermanual MC68HC908QY4.pdf von Freescale ist für jedes Kontrollermodul beschrieben, wie es sich im STOP-Modus verhält. Es gibt einige Interrupts, die offenbar auch im STOP-Modus aktiviert werden können. Standardmäßig sind bei der OM aber alle Module, mit Ausnahme des Auto-Wakeup-Moduls (AWU) deaktiviert, denn jedes aktivierte Modul benötigt Strom.

Viele Grüße
Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: SLOWMODE und Interrupts (von Feynthefallen - 18.09.2006 20:49)
    Re: SLOWMODE und Interrupts (von Dietmar - 18.09.2006 23:27)
        Re: SLOWMODE und Interrupts (von Ulrich - 21.09.2006 22:36)
        Re: SLOWMODE und Interrupts (von Feynthefallen - 19.09.2006 14:46)
            Re: SLOWMODE und Interrupts (von Dietmar - 19.09.2006 19:33)
                Re: SLOWMODE und Interrupts (von Feynthefallen - 19.09.2006 20:21)
                    Re: SLOWMODE und Interrupts (von Dietmar - 19.09.2006 20:49)
                       Re: SLOWMODE und Interrupts (von Feynthefallen - 19.09.2006 21:46)
                          Re: SLOWMODE und Interrupts (von Dietmar - 19.09.2006 23:03)
                             Ausgabedateien (von Dietmar - 25.09.2006 14:50)
                                Re: Ausgabedateien (von Feynthefallen - 25.09.2006 22:17)
                                   Re: Ausgabedateien (von Dietmar - 26.09.2006 11:42)
                                     Re: Ausgabedateien (von Feynthefallen - 26.09.2006 14:20)
                                       "Thomas Fischer", "Tommy" und "Feynthefallen" (von Dietmar - 26.09.2006 21:36)
                                         Re: "Thomas Fischer", "Tommy" und "Feynthefallen" (von Feynthefallen - 3.10.2006 16:57)
                                           Danke für die Richtigstellung (von Dietmar - 3.10.2006 17:58)
                                             Re: Danke für die Richtigstellung (von Feynthefallen - 8.10.2006 13:19)
                                               Re: Danke für die Richtigstellung (von Dietmar - 8.10.2006 14:34)
                                                 Re: Danke für die Richtigstellung (von Feynthefallen - 14.10.2006 23:33)