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: WAHR != UNWAHR? Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 23.03.2026 19:31)
 Als Antwort auf WAHR != UNWAHR? von Christian - 23.03.2026 19:05
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
Hallo Christian,

Du kommst wohl von der Programmiersprache "C"? :-)

In BASIC sind ON und TRUE gleich -1, nicht 1 wie in "C". OFF und FALSE liefern aber genauso 0 zurück.

Das steht auch in der Bedienungsanleitung zur Open-Macro und Open-Maxi bei der vordefinierten Konstante ON:

In allen BASIC-Dialekten liefern logische Ausdrücke wie "a>10" oder "7<=9" entweder den Wert -1 oder 0 zurück, je nachdem, ob sie erfüllt oder nicht erfüllt sind. Die liefern also nicht 1 und 0 zurück, wie zum Beispiel in C. Im Zweierkomplement entspricht -1 der vorzeichenbehafteten Integerzahl, bei der alle Bits gesetzt sind. Aus diesem Grund ist es in BASIC nicht erforderlich, logische Operatoren von binären Operatoren zu unterscheiden. Auch für logische Operationen können die binären Operatoren verwendet werden. Ein weiterer Vorteil sind Verknüpfungsmöglichkeiten wie "a AND b<10". In diesem Fall liefert der Ausdruck den Wert a zurück, wenn b kleiner 10 ist, andernfalls wird 0 zurückgeliefert.

Du mußt also Dein "DEFINE WAHR 1" in "DEFINE WAHR -1" ändern. Schon läuft Dein Programm wie vorgesehen.

Noch ein Hinweis: Wenn Du das kürzere und schnellere "IF bitvariable THEN" verwendest, ist das gleichbedeutend mit "IF bitvariable<>0 THEN". In diesem Fall wird also der Ausdruck "bitvariable" auf TRUE und FALSE abgefragt. Näheres steht in der Doku bei "IF THEN":

Mit dem Befehl läßt sich eine bedingte Befehlsausführung realisieren. Der Befehl vergleicht eine Bedingung auf wahr (ungleich Null) oder unwahr (gleich Null). Die Bedingung ist also ein logischer Ausdruck. [..]

Freundliche Grüße

Dietmar

Passender Link: Infosite zu den OM-Mikrocontrollern

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

 Antwort schreiben

Bisherige Antworten:

Re: WAHR != UNWAHR? (von Christian - 23.03.2026 19:43)