DIP204 LCD wiederholt einen Teil der 1. Zeile

Gast #791510
Lesenswert?
• ▲
▼
Hi Zusammen. Nach langer zeit ging nun es nun entlich mein EA 
DIP204-4NLED 4x20 LCD mit einem KS0073 Controller.

Komischerweise wiederholen sich die Zeichen der 1. Linie nach 12 Zeichen 
auch am anfang der 2. Zeile...

Wenn ich irgendwo einen Fehler in der Verdrahtung gemacht habe müsste 
sich doch die ganze Zeile wiederholen?

Die ganze Software zum ansteuern hab ich aus dem Tutorial hier, einfach 
leicht verändert auf mein Display (init befehle).

Programm:

lcd_flash_string:
           push  temp1

lcd_flash_string_1:
           lpm   temp1, Z+
           cpi   temp1, 0
           breq  lcd_flash_string_2
           rcall  lcd_data
           rjmp  lcd_flash_string_1

lcd_flash_string_2:
           pop   temp1
           ret

jemand eine Ahnung was es sein könnte?
Gast #792299
Lesenswert?
• ▲
▼
Hmm also ist ganz komisch. Ich kann mir allerdings nicht vorstellen dass 
es bei meinem programm ein fehler gibt.

wenn ich die 1. Zeile beschreibe dann sind die letzen 8 Zeichen 
dupliziert am anfang der 2. Zeile. Wenn ich danach die 2. Zeile auch 
beschreibe, werden die ersten 8 Ziffern durch die duplikate der 1. Zeile 
überdeckt, und erst nach diesen 8 duplikaten erscheint der rest der 2. 
Zeile.

Die 2. Zeile wird allerdings nicht dupliziert. Ab der 3. Zeile hab ich 
dann wieder das gleiche problem wie bei Zeile 1 und 2.

Könnte es sein, dass ich das Display irgendwie falsch initialisiere?
Mein Initialisierungsvorgang:

lcd_init:
           push  temp1
           in    temp1, LCD_DDR
           ori   temp1, (1<<PIN_E) | (1<<PIN_RS) | 0x0F
           out   LCD_DDR, temp1
           ldi   temp3,6
powerupwait:
           rcall delay5ms
           dec   temp3
           brne  powerupwait
           out PORTC, temp1
           rcall lcd_enable
           rcall delay5ms
           rcall lcd_enable
           rcall delay5ms
           rcall lcd_enable
           rcall delay5ms
           ldi temp1, 0b00000010
           out PORTC, temp1
           rcall lcd_enable
           rcall delay5ms
           ldi temp1, 0b00101010
           rcall lcd_command
           ldi temp1, 0b00001100
           rcall lcd_command
           ldi temp1, 0b00000100
           rcall lcd_command
           pop   temp1
    ret

Im Anhang das Datenblatt meines Controllers. Ich bin mir allerdings auch 
nicht sicher wie ich das ganze richtig einstelle.

wenn RE=1 sein muss für den Code, muss ich vorhher LCD_Enable aufrufen?
Angehängte Dateien:
Gast #796111
Lesenswert?
• ▲
▼
Hab das ganze jetzt mal noch Fotografiert, damit ihrs euch etwa 
vorstellen könnt.

Für mich sieht es so aus, als ob das LCD meint es sei 28 Zeilen lang. 
Ausserdem fehlen die letzten 8 Zeichen der 2. Zeile. Allerdings werden 
diese geschrieben, nur einfach nicht sichtbar???

Niemand irgend eine Idee?? Verkabelt habe ich alles 99% richtig und 
keine Kurzschlüsse! Hab ich das Display falsch initialisiert??
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