Forum: Mikrocontroller und Digitale Elektronik display ansteuerung problem


von flo (Gast)


Angehängte Dateien:

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.

von STK500-Besitzer (Gast)


Lesenswert?

Da hilft kein Bild deines Displays, sondern nur das Posten deines 
Programms.

von Benedikt K. (benedikt)


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.

von flo (Gast)


Angehängte Dateien:

Lesenswert?

uiui, hier kommen ja schneller antworten als ich den fred laden kann :-)
ich kann nur eine datei in den anhang posten, hier das programm.
anmerkung: high/ LOW-Byte der obersten RAM-Adresse hab ich auskomentiert 
weil der 1200 es nicht unterstützt

von flo (Gast)


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?

von holger (Gast)


Lesenswert?

>wie stehen die chancen daß der displaycontroller einen weg hat?

Schlecht ;) da die erste Anzeige ja korrekt ist.

von chris (Gast)


Lesenswert?

Probier mal, das Display als 2Zeile x 8 Zeichen anzusteuern.

von flo (Gast)


Lesenswert?

tu ich ja schon, im 1- zeilenmodus komm ich garnicht über 8 zeichen 
hinaus.

von YS-500 (Gast)


Lesenswert?

Deine Shift-Taste scheint def. zu sein.
Und was ist >4mhz ?

von Chris S. (schris)


Lesenswert?

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

von Benedikt K. (benedikt)


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.

von Chris S. (schris)


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

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.