Forum: Compiler & IDEs Backslash am Display ausgeben


von F. Gruber (Gast)


Lesenswert?

Hallo forum,

Habe ein Standarddsisplay mit HD44780U Controller am Atmega 8 hängen. 
Nutze die LCD Routinen von Peter Fleury.

Versuche nun mit

lcd_putc('\');
bzw.
lcd_putc(0x5C);

einen Backslash auf dem Display auszugeben. Doch anscheinend 
interpretiert das Display diesen Backslash (ASCII = 0x5C) als 
Steuerzeichen oder was auch immer. Jedenfalls erscheint nur ein 
kryptisches Zeichen an dieser Stelle.

Alle anderen Zeichen funktionieren bestens.

Hat jemand ne Ahnung ob das Möglich ist?

Gruß, F. Gruber

von Borsty (Gast)


Lesenswert?

http://www.ortodoxism.ro/datasheets/HitachiSemiconductor/mXvyusu.pdf

Seite 18/61

Der Zeichensatz enthält leider kein Backslash von sich aus.
Das musst du dir leider selbst erzeugen (CG-RAM)

von F. Gruber (Gast)


Lesenswert?

Mhm ich versuche verzweifelt eigene Zeichen ins Display zu bekommen.
Irgendwie scheint der Controller aber nicht auf das Kommando

extern void lcd_command(uint8_t cmd);

aus Peter Fleurys Routinen zu reagieren...

Schicke ihm die Adresse vom GCRAM und dann für jede Zeile ein Byte. Laut 
Datenblatt inkrementiert der Controller ja selber die GCRAM Adresse nach 
jedem Byte. Anschließend setzte ich den Curser mit lcd_home() wieder in 
den sichtbaren Adressbereich.

Wenn ich versuche ein Zeichen mit lcd_putc(0x00) auszugeben passiert 
nichts...

Hat da jemand ne Idee wo der Haken sein könnte? Betreibe das Display im 
bit I/O Mode.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> lcd_putc(0x00)

Was meinst Du, was das für ein Zeichen an das Display ausgibt?

von F. Gruber (Gast)


Lesenswert?

Laut Datenblatt liegen in den ASCII Codes 0x00 bis 0x07 die 
selbstefinierten Zeichen!!!

Hier mal mein codeschnipsel:
1
lcd_command(64);      //GCRAM Adresse für das erste Zeichen(0x00)
2
lcd_putc(0b10101010); //Zeile 1
3
lcd_putc(0b10101010); //Zeile 2
4
lcd_putc(0b10101010); //Zeile 3
5
lcd_putc(0b10101010); //Zeile 4
6
lcd_putc(0b10101010); //Zeile 5
7
lcd_putc(0b10101010); //Zeile 6
8
lcd_putc(0b10101010); //Zeile 7
9
lcd_putc(0b10101010); //Zeile 8
10
lcd_home();
11
lcd_putc(0x00);

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.