Forum: Mikrocontroller und Digitale Elektronik LCD Hilfe ich werde irre


von Elektronikfrak (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend

Ich hoffe hier kann man mir helfen, Bitte! Habe ein kleines File
programmiert wo ein LCD ansteuern soll. Das LCD wir richtig
initialisiert und zeigt auch den Text " Lüftersteuerung by " an bis
auf einen kleinen Fehler! Auf dem Display erscheint kein ü sondern so
ein komisches Zeichen.
.....
. . .
.....
.   .
Die anderen Buchstaben passen alle. Ich suche schon ne Ewigkeit aber
finde den Fehler nett. Laut HD44780 hat das Zeichen "ü" den Wert
11110101 und das Zeichen was auf dem LCD erscheint 11111100. So wie es
aussieht vertauscht da was oder jemand die Low-Bit´s. Wo ist denn das
definiert das wenn ich im Assembler z.B. 'A' programmiere er dann den
Wert 01000001 dafür einsetzt? Habe die Vermutung das in dieser
"Definition" der Fehler liegt. Wenn im Programm ein Fehler wäre wo er
die Low- bzw. High-Bits vermurkst dann müsste ja in mehreren Zeichen
ein Fehler sein und nicht nur in einem.

Thanks für Hilfe

Suche schon fast ne Woche nach dem Fehler ohne Erfolg. Habe mir jetzt
aus Frust ein paar Bier rein gezogen also Sorry wegen Rechtschreibung.

von Matthias (Gast)


Lesenswert?

Hi

das LCD hat einen anderen Zeichensatz als dein Assembler. Du mußt also
diesen entweder in deiner Ausgaberoutine zur Laufzeit anpassen oder
aber in deiner Stringdefinition das ü gegen den entsprechenden Code
austauschen.

Matthias

von Uwe (Gast)


Lesenswert?

Hi!
Schreibe einfach statt 'ü' $f5, denn klapps auch mit dem ü.

MFG Uwe

von Elektronikfrak (Gast)


Lesenswert?

Hallo

Zu der Aussage
"Du mußt also diesen entweder in deiner Ausgaberoutine zur Laufzeit
anpassen" bedeutet das ich es im Assembler anpassen kann oder wie? Das
wär net schlecht aber wo? Arbeite mit AVRStudio 4!

von Elektronikfrak (Gast)


Lesenswert?

Habe gerade die Sache geändert und zwar so

'
','L',0xF5,'f','t','e','r','s','t','e','u','e','r','u','n','g','
','b','y',' '

dann funktioniert es. Laut Datenblatt des HD44780 ist der Hex-Code für
"ü" 0xF5. So wenn ich jetzt das "ü" eingebe und den Assembler die
Sache wandelen lasse kommt schei..e raus, wenn ich 0xF5 eingebe funzt
es. Das heist doch ganz klar das sich das AVRStudio nix aus der
Spezifikation des HD44870 macht. Ist ja nur der am meisten verbaute
Controller am Markt. Habe mal etwas probiert, das ü ist nicht das
einzige Zeichen was falsch dargestellt wir wenn man es als Büchstabe
eingibt, wenn man den Hex-Wert schreibt geht es. Toll das kann`s ja
nett sein und das bei ner Software von der Firma Atmel.

von Ichbinsnur (Gast)


Lesenswert?

Stimmt, Atmel macht sich da auch nichts draus; die können ja nicht
wissen was Du ansteuern möchtest. Die Zeichensätze unterscheiden sich
eben von Land zu Land etwas.

Ach, übrigens sollte

'L',0xF5,'ftersteuerung'

auch funktionieren, sieht dann ein bisschen schöner aus :-D

von Matthias (Gast)


Lesenswert?

Hi

das ist der Punkt. Alles was nicht 7-Bit ASCII ist kann von Land zu
Land, von OS zu OS und sogar von Programm zu Programm anders
dargestellt werden. Muß man also selber anpassen.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.