PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: LCD mit KS0073 an Attiny2313



Silent Green
29.05.2007, 23:22
hallo an alle! :-)

zu allererst: ich bin neu hier und hoffe mein thread ist im richtigen unterforum gelandet....

nun zu meinem problem - ich habe einen EA DIP204-4 (lcd mit 4x20 zeichen), kontroller KS0073 und bekomme diesen an meinem Attiny2313 nicht richtig zum laufen. es wird zwar alles ausgegeben, nur irgendwie sieht die anzeige etwas zerschoben aus, in etwa so:

text1 text2
ext2 text3

bin mir nun nicht sicher obs am program liegt, oder an der verschaltung. habe die verkabelung geprüft, finde auch nichts... also liegts an der software?!
:-k
habe auch schon ein wenig gegoogelt und bin dabei (auch hier im forum) auf threads gestossen, die ein ähnliches problem beschreiben, wenn ein KS0073 anstelle eines HD44780 verwendet wird (das bei der anzeige ein teil aus zeile 1 in zeile 2 rutscht etc). und wenn ich das annäherungsweise richtig verstanden habe liegt das daran, das der KS anders initialisiert werden muss als der HD. ich bin auf dem gebiet aber leider noch ein anfänger, also wie muss das genau aussehen?

das programm das ich verwende stammt nicht von mir, wurde aber anscheinend mit avr-studio erstellt... die ini für das lcd schaut dort in etwa so aus:


; LCD initialisieren und Sonderzeichen programmieren
;
rcall w50ms ;Warteschleife 50ms
clr r17 ;LCD in Befehlsmodus setzen
ldi r16,0x30 ;Initialisierung
rcall lcdout ;ausgeben
rcall w04ms ;Warteschleife 4,1ms
rcall lcdout ;Init nochmals ausgeben
rcall w100my ;Warteschleife 100µs
rcall lcdw40 ;Init nochmals ausgeben
ldi r16,0x38 ;8-Bit-IF, 2-Line, 5x7 Font
rcall lcdw40 ;ausgeben
ldi r16,0x0c ;Display ein, kein Cursor
rcall lcdw40 ;ausgeben
ldi r16,0x06 ;Increment, kein Scolling
rcall lcdw40 ;ausgeben
;
ldi r16,0x40 ;LCD-Adresse der Sonderzeichen
clr r17 ;LCD in Befehlsmodus setzen
rcall lcdw40 ;Adresse setzen
ldi r19,24 ;24 Bytes für 3 Sonderzeichen
ldi r17,1 ;LCD in Datenmodus setzen
ldi zl,low(2*chars) ;Zeiger auf Zeichen-Bitmaps
ldi zh,high(2*chars) ;(Grad-Zeichen und Pfeile)
sta100: lpm ;Datenbyte aus Flash holen
mov r16,r0 ;und kopieren
adiw zl,1 ;Zeiger auf nächstes Datenbyte
rcall lcdw40 ;an LCD ausgeben
dec r19 ;alle Zeilen ausgegeben?
brne sta100 ;nein -> Schleife
;
ldi r16,0x01 ;Befehl: Anzeige löschen
clr r17 ;LCD in Befehlsmodus setzen
rcall lcdout ;ausgeben
rcall w15ms ;Warteschleife 15,2ms


angeschlossen ist der lcd an den tiny wie folgt:


PortB0: Ausgang LCD-Anschluss D0
PortB1: Ausgang LCD-Anschluss D1
PortB2: Ausgang LCD-Anschluss D2
PortB3: Ausgang LCD-Anschluss D3
PortB4: Ausgang LCD-Anschluss D4
PortB5: Ausgang LCD-Anschluss D5
PortB6: Ausgang LCD-Anschluss D6
PortB7: Ausgang LCD-Anschluss D7

PortD2: Ausgang LCD-Anschluss RS
PortD3: Ausgang LCD-Anschluss E


ich hoffe ihr könnt damit etwas anfangen und mir mit der sache aushelfen, mag mir nicht einen neuen bzw anderen lcd beschaffen :-/

in diesem sinne schonmal danke im vorraus und liebe grüsse!

PS: wäre sehr nett wenn jmd einfach die ini die ich oben reinkopiert habe entsprechend anpassen könnte, bin wie gesagt noch ein grünschnabel auf dem gebiet