Peter schrieb:
> Hallo habe probleme die i2clcd.c (h) an ein 20x4 LCD anzupassen.
Welche Anpassungen im Code hast du vorgenommen (das ist ja scheinbar ein
Code vom Peter Fleury. Ich kann aber das Original auf die Schnelle nicht
finden)
> Wenn ich das richtig gesehen habe hängt es im Unterprogramm "lcd_gotolr"
> da wird die Variable "row-1" auf die Ausgänge geschrieben aber ohne es
> auf 4 Bit zu zerlegen. Befinde mich aber im 4 Bit modus.
Uninteressant. Dazu hast du die Funktion lcd_write. Die kümmert sich um
die Zerlegung. Ausserhalb lcd_write interessiert es keinen, dass du 4
Bit MOdus hast.
> ich auch keine Spalte über 16 angeben. Aber wieso der dann die letzten 8
> Buchstaben doppelt schreibt weiß ich nicht.
> Kann mir da jemand weiter helfen?
Ich schätze mal, dass dein LCD nicht in den 4 Zeilen Modus gesetzt
wurde.
Zumindest sieht das hier
1 | //- From now on in 4-bit-Mode
|
2 | lcd_command(LCD_4BIT | LCD_2LINE | LCD_5X7); //- 2-Lines, 5x7-Matrix
|
3 | lcd_command(LCD_4LINE);
|
nicht koscher aus. Zuerst wird in 2 Zeilen geschaltet und danach auf 4
Zeilen. Das ist aber nicht schlau, denn durch das 2.te lcd_command
werden die Einstellungen des ersten lcd_command wieder rückgängig
gemacht.
Da solche Dinge Peter eigentlich normalerweise nicht passieren: Hast du
am Code umgebastelt?
Abgesehen davon: Bei einem LCD, welches über I2C angesprochen wird,
welchen Sinn macht da ein 4-Bit Modus? Ich verstehs nicht.