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: verschachtelte Sprungziele Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 25.01.2006 20:23)
 Als Antwort auf Re: verschachtelte Sprungziele von Arne - 25.01.2006 15:07
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini
Hallo Arne,

natürlich ist es zulässig mit GOTO aus einem IF herausspringen. Im folgenden einmal die ausführliche Disassemblierung des vom Compiler OCBASIC erzeugten Tokencodes. Ich habe jeweils den zugehörigen Quellcode daneben geschrieben.

Bitte schicke mir Deinen gesamten Sourcecode per E-mail zusammen mit einer Fehlerbeschreibung. Sinnvoll wäre es, wenn Du das Problem auf einen kleinen Sourcecode reduzieren könntest, bei dem der Kontroller nicht das macht, was Du beabsichtigen willst. Auf jeden Fall benötige ich auch die von Dir verwendeten Definitionen.

0004: 0a 01       PUSH BITPORT[2]                if (Licht = OFF)  then
0006: 01          PUSH OFF
0007: 40          TEST EQUAL (=)
0008: 04 00 18    IF NOT STACK THEN 0018
000b: 01          PUSH OFF                         LED = OFF
000c: 0d 03       POP BITPORT[4]
                                                   repeat
000e: 0a 01       PUSH BITPORT[2]
0010: 13          PUSH ON
0011: 40          TEST EQUAL (=)
0012: 04 00 0e    IF NOT STACK THEN 000e           until (Licht = ON)
0015: 03 00 29    GOTO 0029                        Goto Schritt
                                                 end if
0018: 0a 01       PUSH BITPORT[2]                if (Licht = ON)  then
001a: 13          PUSH ON
001b: 40          TEST EQUAL (=)
001c: 04 00 29    IF NOT STACK THEN 0029
001f: 13          PUSH ON                          LED = ON
0020: 0d 03       POP BITPORT[4]
                                                   repeat
0022: 0a 01       PUSH BITPORT[2]
0024: 01          PUSH OFF
0025: 40          TEST EQUAL (=)
0026: 04 00 22    IF NOT STACK THEN 0022           until (Licht = OFF)
                                                 end if
0029: ff          END                            end

Grüße
Dietmar

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

 Antwort schreiben

Bisherige Antworten: