Forum: Mikrocontroller und Digitale Elektronik LCD- Das ewige Leiden


von Lasse .. (lassem)


Angehängte Dateien:

Lesenswert?

Moin,
Ich versuche mich gerade mit einem LCD Display am Mikrocontroller. Ist 
ein 2*16 Zeilen Display von Powertip oder so. Der Treiber ist ein 
ST7066U, soll eigentlich wohl genauso sein wie der HD44780. Ich habe 
mich an das GCC Tutorial zur LCD-Ansteuerung gehalten und es klappt auch 
das was auf dem LCD erscheint. Wenn ich z.B. einen String ausgeben 
möchte funktioniert das auch manchmal...
Wenn ich das Programm übertrage, kommt dann nach

lcd_setcurser(0,1);
lcd_string("Hallo Hallo");

sowas wie  "|allo Hyllo". Manchmal kommt auch das, was gewünscht war. 
Aber eben nicht immer...
Ich habe den Code original so übernommen wie er im Tutorial steht, nur 
die Pins geändert. Habe die Datenleitungen an PORTA 0-3 und dem 
entsprechend:
#define LCD_PORT      PORTA
#define LCD_DDR       DDRA
#define LCD_DB        PD0

Ich habe das Datenblatt des ST7066U mal angehängt, die Zeiten scheinen 
entwas abzuweichen. Sehe ich das richtig?

#define LCD_BOOTUP_MS           15
#define LCD_ENABLE_US           20
#define LCD_WRITEDATA_US        46
#define LCD_COMMAND_US          42

#define LCD_SOFT_RESET_MS1      5
#define LCD_SOFT_RESET_MS2      1
#define LCD_SOFT_RESET_MS3      1
#define LCD_SET_4BITMODE_MS     5

#define LCD_CLEAR_DISPLAY_MS    2
#define LCD_CURSOR_HOME_MS      2

Sind die Zeiten des Tutorials, nun weiß ich nicht genau welche Zeit für 
was genau steht und wie genau die angabe sein muss.
Aus dem Datenblatt habe ich, das die Wait zeit nach "Power on" >40ms 
sein soll, müsste ich LCD_BOOTUP_MS dann auf 40+ ändern?
Genauso die Waittimes für die "Function sets", die sind im Datenblatt 
mit 37us angegeben und die "wait time" für Display set z.B. mit 
1,52ms...

Kann das überhaupt das Problem sein? Kann mir da vielleicht jemand 
helfen? Oder gibt es vielleicht ein Tutorial, wie man so eine Routine 
für eine LCD-Ansteuerung selber schreibt? Ich stehe etwas auf dem 
Schlauch :x

Vielen Dank im Voraus,
Lasse

von MaWin (Gast)


Lesenswert?

Lasse ... schrieb:
> sowas wie  "|allo Hyllo". Manchmal kommt auch das, was gewünscht war.

Es hindert dich niemand, es mal mit 10 x längeren Delays zu probieren.

Aber vielleicht hast du auch elektrische Fehler.

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.