display ansteuerung problem

Gast #1080447
Lesenswert?

hallo,
ich mache meine ersten gehversuche mit dem avr und probiere ein 1x16 lcd 
anzusteuern. dabei habe ich mich zuerst komplett an das tutorial 
gehalten was auch funktioniert hat. jedenfalls für die ersten 8 zeichen. 
dann bin ich weiter gegangen und habe mit hilfe des datenblattes und des 
tutorials ein zweites wort an die adresse der zeichen 9-16 geschrieben, 
funktioniert auch. da es mein ziel ist ein thermometer mit mehreren 
fühlern zu bauen, muß ich das display natürlich öfters beschreiben als 
nur einmal wie es im tut gemacht wird. wenn ich rücksprungpunkt "loop" 
aber zurück zur ausgabe des wortes "test" setze, wird nach ca. 
30sekunden progammlaufzeit (90s1200 @4mhz) nur noch zeichen 1-8 
beschrieben, 9-16 bleibt tot. das erste bild zeigt das display nach der 
initialisierung, das bild bleibt wie gesagt für ca. 30sekunden so.
Angehängte Dateien:
#1080453
Lesenswert?

flo wrote:
> nach ca.
> 30sekunden progammlaufzeit (90s1200 @4mhz) nur noch zeichen 1-8
> beschrieben, 9-16 bleibt tot.

Das heißt das Display wird danach vermutlich in den 1 Zeilen Modus 
versetzt -> Das Display bekommt aus irgendeinem Grund den Befehl dazu, 
entweder wegen eines Software oder Hardware Fehlers.
Gast #1080500
Lesenswert?

@benedikt, ich habe die (steuer- und daten) signale mal mit nem oszi 
nachgemessen, die sehen zum zeitpunkt des "umschaltens" unauffällig auf. 
wenn sich nicht doch ein fehler in den code eingeschlichen hat- wie 
stehen die chancen daß der displaycontroller einen weg hat?
#1082303
Lesenswert?

Chris S. wrote:
> Hallo, in deinem Code habe ich nichts gesehen, wo du in die zweite Zeile
> gehst, um dort Text auszugeben.

Hier geht er in die 2. Zeile:
 ldi temp1, 0b11000000  ;position 9 laden
  rcall lcd_command

Hier ist nur der Kommentar falsch, der Befehl macht 2 Zeilen:
           ldi temp1, 0b00101000        ; 4Bit  1 Zeile  5x8
           rcall lcd_command

Ansonsten passt die Software auch, das Timing ist OK usw. Ich konnte 
zumindest nichts erkennen. Daher würde ich auf einen Hardwarefehler wie 
zu große Kapazitäten, zu kleine Widerstände oder ähnliches an den 
Leitungen tippen.
#1082345
Lesenswert?

Sorry, kenne mich mit AVR Assembler nicht aus, danke.
Aber was ich im obigen Post meinte, warscheinlich erste Zeile
0x0 - 0x7 sowie zweite Zeile 0x40-0x47 wie es oft üblich ist.
Es wird eben als zweizeiliges Display angesteuert, und hoffentlich
auch Initialisiert, habe nicht nachgeschaut.
Die zweite Zeile beginnt eben bei 0x40.
Für ein Display 1x16 mit 0x0-0xf muß ein weiteres IC drauf, das meistens 
weggespart wird.

Mfg
Chris

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren