
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |