PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitmuster / Zeichendarstellung invertieren



m@rkus33
04.01.2013, 11:06
Hallo zusammen,

ich komm jetzt nich drauf....

Ich möchte Zeichen für ein Grafik- Display teilweise invers darstellen.

Ein Zeichen hat z.B. in der ersten Reihe folgendes Muster: "&B00001000" daraus soll dann "&B11110111" werden, usw.

Das bedeutet ich möchte mit nur einem Befehl die Reihen, wenn sie vor der Darstellung nacheinander abgefragt werden, invertieren.

Gibt es in Bascom einen solchen Befehl? Steh jetzt irgendwie auf der Leitung....

Danke!

malthy
04.01.2013, 11:24
Hallo,

ganz genau habe ich nicht verstanden worauf du hinaus willst, aber invertieren kann man einen Wert natürlich mit NOT, also


B = NOT A

Keine Ahnung ob's das ist was du suchst... :-)

Gruß
Malte

m@rkus33
04.01.2013, 12:29
Hi Malte,

bingo! genau das meinte ich. Danke!

Damit kann ich bei der Darstellung verschiedener Zeichen im Grafikdisplay bestimmen ob und welches Zeichen "positiv" oder "negativ" dargestellt werden soll.

Habs gerade getestet und es funzt.

m@rkus33
04.01.2013, 16:41
24193

Hier sieht man was ich meine. Ich kann beliebige Zeichen an beliebiger Stelle auch invers darstellen, ohne einen eigenen Zeichensatz dafür erstellen zu müssen. In dem ich im Falle vor jeder Darstellung im LCD das jeweilige Byte mit "NOT" invertiere.

malthy
04.01.2013, 19:01
Hey,

freut mich, dass ich so einfach helfen konnte. Poste doch ein paar Zeilen Code dazu, vielleicht ist es ja auch nochmal für jemand anderen nützlich...

Gruß
Malte

m@rkus33
04.01.2013, 21:58
Der Ursprungscode ist von hier: http://www.mkprojekt.de/index.php?content=3310_1

Ich habe dann nur vor dem SPIOUT jeweils eine Abfrage drin ob das Zeichen invers oder nicht dargestellt werden sollte. Ich gebe dann nur nach der Positon und Text an ob inverse Darstellung oder nicht.




Dim Invers as Bit


Do
Position x,y
Text = "Hello World"
Invers = 1 'Inverse Darstellung = 1, normale Darstellung = 0
Call Nprint
.
.
.
.

Sub Zeichenout
Dc = 1
For Count = 1 To 6
Read Daten
Ce = 0
If Invers = 0 Then Spiout Daten , 1
If Invers = 1 Then
Negdaten = Not Daten
Spiout Negdaten , 1
End if
Ce = 1
Next Count
Dc = 0
End Sub