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: String-LCD-Ausgabe Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 31.01.2012 21:45)
 Als Antwort auf Re: String-LCD-Ausgabe von Markus - 31.01.2012 19:53
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Mini M-Unit, Open-Mini Station, sonstige
Hallo Markus!

> Als ich allerdings das Programm um 2 weitere LCD Ausgaben erweiterte, trat wieder der zuvor beschriebene Effekt auf.

Ich habe den von Dir beschriebenen Effekt jetzt reproduzieren und den Grund daf├╝r ausfindig machen k├Ânnen. Es liegt daran, da├č der OCBASIC-Compiler Stringkonstanten unterst├╝tzt, die ein oder zwei Zeichen lang sein d├╝rfen:

DEFINE a BYTE
DEFINE b WORD

a="A"        'entspricht a=ASC("A")
b="01"       'entspricht b=CVI("01")

In Deinem Beispiel interpretiert der Compiler "M:" als 16-Bit-Stringkonstante. Da er in diesem Fall byteorientiert arbeitet, wird das obere Byte abgeschnitten und es bleibt ein ":" ├╝brig.

Um das Problem zu beheben, werde ich wahrscheinlich Stringkonstanten in der n├Ąchsten Version des Compilers herausnehmen m├╝ssen. Dumm ist dann nur, da├č bestehende OCBASIC-Programme, die Stringkonstanten verwenden, nicht mehr ├╝bersetzt werden k├Ânnen. :-(

Bis dahin sollten bei INLINE alle Strings, die genau zwei Zeichen lang sind, vermieden werden. Ebenso verh├Ąlt es sich mit zwei Zeichen langen Strings in Tabellen.

Viele Gr├╝├če
Dietmar

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

 Antwort schreiben

Bisherige Antworten: