Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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: Fehler-Behandlung auf den OM-Mikrocontrollern Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Joachim - 10.05.2018 21:32)
 Als Antwort auf Fehler-Behandlung auf den OM-Mikrocontrollern von Dietmar - 10.05.2018 21:04
Joachim nutzt:  Open-Macro
Hallo Dietmar,

dass die OM bei Fehler nicht einfach stehen bleibt ist eine tolle Sache! Die OM scheint sehr durchdacht zu sein!

Übrigens läuft der Source Code auch auf Open-Macro. Man muss nur INCLUDE "omax.def" durch INCLUDE "omac.def" ersetzen.

Was mir aber noch nicht ganz einleuchtet ist die Adresse. Bei mir wird Adresse: $e989 ausgegeben. Was hat es damit auf sich?

LG

Joachim




> \' ----------------------------------------------------------------------------
> \' Demonstration von \"Run On Error\" auf den Open-Control-Mikrocontrollern
> \' In OCBASIC 1.11a für Open-Maxi von Dietmar Harlos am 10. Mai 2018
> \' ----------------------------------------------------------------------------
>
> \' Normalerweise unterbricht die OM die Programmausführung, sobald ein Fehler
> \' auftritt. Durch Setzen des Bits RunOnErr kann man die OM jedoch anweisen,
> \' das BASIC-Programm bei einem Fehler neu zu starten. Die Daten der
> \' verwendeten Variablen bleiben dabei erhalten. Das Betriebssystem wird
> \' reinitalisiert. Der Fehlergrund steht in der internen Variable ERR und die
> \' Adresse des Bytes hinter dem fehlerhaften Tokenbefehl steht in ERRADR.
>
> \' Diese Funktion ist dazu vorgesehen, um an den Beginn des Programms eine
> \' Fehlerbehandlungsroutine zu stellen und die Programmausführung bei Eintritt
> \' eines Fehlers zu beenden. Das Auftreten eines Fehlers ist ein Hinweis, daß
> \' irgendetwas im Programm nicht korrekt abläuft. Das Programm sollte deshalb
> \' nicht einfach nochmals durchlaufen werden. Zumal der RAM-Speicher und somit
> \' auch das User-RAM mit den Variablen nicht reinitalisiert wurden.
>
> \' Sobald ein Fehler auftritt, wird in der internen Variable ERR der
> \' Fehlergrund als Fehlernummer kodiert abgelegt. Nach Programmstart ohne
> \' Fehler enthält ERR den Wert 0. ERR belegt auf der OM den gleichen
> \' RAM-Speicher wie DBNZCTR und RAND.
>
> \' Bei Fehlern in der Datendatei (d.h. wenn das I²C-EEPROM nicht ansprechbar
> \' ist - kein ACK sendet) wird die Programmausführung auf der Open-Maxi nicht
> \' mehr wie auf den bisherigen OM-Controllern mit Fehler abgebrochen, sondern
> \' nur das Fehlerbit FileErr gesetzt, das der Anwender abfragen kann. Wenn
> \' das Fehlerbit gesetzt ist, werden vom Betriebssystem alle nachfolgenden
> \' Dateibefehle (z.B. PRINT#) ignoriert. Das Fehlerbit wird vom Betriebssystem
> \' bei OPEN# automatisch resettet.
>
> \' ----------------------------------------------------------------------------
>
> INCLUDE \"omax.def\"         \'Definitionen für die Open-Maxi
>
> \' ----------------------------------------------------------------------------
>
> \' Nach einem Fehler Programm neu starten, Fehlergrund in ERR und Adresse
> \' hinter dem fehlerhaften Tokenbefehl in ERRADR
>
> RunOnErr=ON
>
> IF ERR THEN
>   WHILE TRUE
>     PRINT \"RUN ON ERR: \";
>     IF ERR=0 THEN                   \'nur zur Verdeutlichung
>       PRINT \"kein Fehler\";
>     ELSE IF ERR=1 THEN
>       PRINT \"Zuviele GOSUB-Verschachtelungen\";
>     ELSE IF ERR=2 THEN
>       PRINT \"RETURN ohne GOSUB\";
>     ELSE IF ERR=3 THEN              \'nicht auf Open-Maxi
>       PRINT \"File-I/O-Error\";
>     ELSE IF ERR=128 THEN
>       PRINT \"Illegales Token\";
>     END IF
>     PRINT \"! Adresse: $\";
>     PrintHex=ON
>     PRINT ERRADR
>     PAUSE 25
>   WEND
>   END
> END IF
>
> \' ----------------------------------------------------------------------------
>
> \' Fehler provozieren
>
> #endlos
> \'GOSUB endlos               \'\"Zuviele GOSUB-Verschachtelungen\"
>
> RETURN                     \'\"RETURN ohne GOSUB\"
>
> \'INLINE 100                 \'\"Illegales Token\"
>
> \' ----------------------------------------------------------------------------
>
> End2Host=ON                \'Nach Programmende in den Host-Modus
> END                        \'Programmende, Neustart mit der Enter-Taste
>
> \' ---------------------------------------------------------------------------

 Antwort schreiben

Bisherige Antworten:

Re: Fehler-Behandlung auf den OM-Mikrocontrollern (von Dietmar - 10.05.2018 21:51)
    Re: Fehler-Behandlung auf den OM-Mikrocontrollern (von Joachim - 10.05.2018 22:37)