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.
Da hilft kein Bild deines Displays, sondern nur das Posten deines Programms.
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.
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
@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?
>wie stehen die chancen daß der displaycontroller einen weg hat?
Schlecht ;) da die erste Anzeige ja korrekt ist.
tu ich ja schon, im 1- zeilenmodus komm ich garnicht über 8 zeichen hinaus.
Hallo, in deinem Code habe ich nichts gesehen, wo du in die zweite Zeile gehst, um dort Text auszugeben.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.