Mal wider LCD über AVR ansteuern

Gast #178617
Lesenswert?

Hi !

Ich verzweifle langsam an der ansteuerung eines hd44780 kompatiblen
displays in c.
In ASM war das alles kein problem aber jetzt in c bekomm ichs nicht hin
!
hab auch schon gesucht aber leider nichts gefunden.

das einzige was der code macht ist, dass auf dem display ein p
angezeigt wird (auch wenn lcd_text auskommentiert wird).

das p kommt glaub ich aus der zeile:

init = 0b00001110;
LCD_command();

kann jamand sich vielleicht mal den code anschauen und sagen was ich
falsch mache? wär wirklich super nett ! und der code is ja nicht so
lang.

Vielen Dank !
Angehängte Dateien:
Gast #178619
Lesenswert?

Wie lautet deine Pinbelegung?
Wo befindet sich die Funtkion *lcd_renew()* ?
Was bringt es dir in *LCD_init()* später ständig die Variable init zu
setzten, obwohl du danach nur die Funktion *LCD_command()* aufrufst, die
unabhängig von init ist ?
Gast #178620
Lesenswert?

normal müsst des so aussehen:

init = 0b00001110;
LCD_command(init);

lcd_renew() ist lcd_enable(). (wurde nur zu debug zwecken verwendet.)

ich versteh langsam nix mehr! es wird immer nur son p angezeigt egal
was ich mach !
ich saß an dem code jetzt sicher schon 20 std und bekomms net hin !
die fertige routine will ich nicht verwenden, weil die zu kompliziert
für mich ist und ich wills schliesslich lernen !

MFG Zoomie
Gast #178621
Lesenswert?

Ich verwende eine etwas abgewandelte Routine ohne R/W. LCD_init wird nur
einmal aufgerufen um z.b.den 4-Bit Modus zu aktivieren.
lcd_renew kenne ich nicht.
In der zugehörigen Lib sind alle Funktionen beschrieben.

Hubert
Gast #178623
Lesenswert?

hab jetzt for(;;); eingefügt hat nix verändert....warum denn auch des
display behält des ja eh im speicher und dann isses doch egal wenn der
mc "abstürtzt". Und interrupts hab ich eh keine drinne.
Ich bin voll am verzweifeln....
MfG
Gast #178625
Lesenswert?

Hallo! ich hab mal ein schaltplan in zu meinen aufbau gemacht.
mich wundert es, dasses mit asm auf anhieb funktioniert hat.
In prinzip funktioniert ja die initialisierung, weil das display ca. 1
sec nach dem start ein "p" anzeigt und das zeigt es auch an wenn ich
die  funktion LCD_Text() nicht aufrufe. das p wird nach dem

  init = 0b00001110;
  LCD_command(init);

angezeigt.
kann es sein, dass mit dem timeing was nicht stimmt ?

MfG simon
Angehängte Dateien:

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