hallo alle zusammen
ich hab ein problem mit meinem lcd display da es falsche zeichen
anzeigt.
input:
lcd display 4x20
der firma: topway
modell: lmb204bfc
angeblicher treiber: st7066u und drei mal st7063c also vier chips wovon
ich aber nur drei sone schw. tropfen auf der platine sehe!naja
programm in assembler und mit atmega8.
wie man in der datei sieht schicke ich a,b,c,d,e,....hintereinander weg
aber anstatt diese buchstaben zu zeigen, zeigt das lcd für jeden
buchstaben "|||" anfangs hatte ich 'T' 'E' 'S' 'T' verschickt und es
kamen nur ein schw. block an erster stelle, ein unterstrich (2. stelle)
und dann drei "ooo" raus!
ich hab viel rum gespielt mit zeiten und init. doch das problem war
immer noch vorhanden!
hab auch mal die zeile mit dem cursor blinken verändert so das es nicht
mehr blinkt aber geblinkt hat es immer noch, das lcd macht sein eigenes
ding.
also kurz und knapp das lcd bedient mich und nicht anders herum ;-)
hat vill. jeman einen tipp bzw kann mir erklähren was ich falsch und
machen soll?
muss dazu sagen bin relativ neu im µc programmieren hab jedoch schon
einen countdown timer mit 7 seg. anz. gebastelt was auch leuft...nur so
zur info was ich kann(ist ja nich viel hehe).
währe sehr dankbar für eine lösung
grüße aus berlin mojo
Hmm, also programmierst Du mit Word, oder warum ist das Attachment im
RTF Format?
Dann habe ich keine Ahnung, was das für ein Display ist, scheint aber
HD44780 kompatibel sein zu sollen.
Mit ein googlen nach "st7066u" kommt als dritter Eintrag ein thread aus
diesem Forum, der dieselben Probleme löst:
Beitrag "Probleme mit LCD (ST7066U)"
(Übrigens vermisse ich in Deinem Code beim initialisieren die
notwendigen Pausen, Du scheinst das Display zu "überfahren".)
Gruß,
Bernhard
mojo wrote:
> wie man in der datei sieht
Mein Assembler versteht kein RTF.
Mach nen vernünftigen Dateianhang *.asm, dann gucken sich das einige
Leute auch mal an.
Peter
Hallo,
ich bin auch noch recht neu auf dem Gebiet der uP - Programmierung, aber
ich hab mir deinen Quellcode mal angeguckt.
Mir ist aufgefallen, dass du bei der Initialisierung glaube ich nur
einmal das Commando 0x30 an das Display sendest.
Im Datenblatt eines HD44780 steht aber, dass man das 3 mal senden muss.
1
;init_lcdd:
2
3
cbi data, e ;8bit ohne untere nibbel
4
ldi reg1, 0x30 ;<-- diese Stelle mein ich
5
out data, reg1
6
rcall ena
7
8
cbi data, e ;4bit, 2 zeilen, 5x8
9
ldi reg1, 0x28
10
rcall comand
11
...
Und wie auch schon boregard sagte, dir fehlen zumindest bei dieser
ersten Anweisung die Wartezeiten.
MfG BlueMorph
hallo
danke für eure antworten.
an peter & boregard:
rtf deswegen, weil ich den code in wordpad kopiert hab.
hoffe der anhang hilft jetzt.
an boregard:
die pausen habe ich im comand und im datai versteckt.
meinst du die zeit reicht nicht?? ich mein im datenblatt steht >37us und
das sind deutlich mehr da ich dachte las dem lcd vieel zeit zum tun;-)
an bluemorph:
http://www.sitronix.com.tw/sitronix/SASpecDoc.nsf/FileDownload/ST7066U614654/$FILE/ST7066Uv22.pdf
laut datenblatt seite 25 sollte das so richtig sein(4 bit mode).
mfg mojo
Aha, ich davon ausgegangen, dass du einen HD44780 kompatibles display
hast.
Hattest du ja nicht reingeschrieben.
Hoffe Du hast dein Problem behoben.
MfG BlueMorph
nee leider ist das problem noch nicht behoben im gegenteil hab jetzt ein
neues :-(.
diese zeilen hab ich verändert das heißt nur rcall ms.
1
ldireg1,0x30;8bitohneunterenibbel
2
outdata,reg1
3
rcallena
4
rcallms<-----hinzugefügt
5
6
7
ldireg1,0x28
8
rcallcomand
das problem das ich jetzt habe ist das der µc das lcd initialisiert,
aber weder die buchstaben noch diese "|||" anzeigt besser gesagt nichts
mehr!
dieses projekt frustriert mich sehr.*heul*
hat jemand noch ne idee?
oder andere frage: meint ihr der gedanke, das ich jetzt den 8 bit mode
und nicht 4bit init. hab, ist richtig?
mfg mojo
Hi!
Wenn ich das richtig sehe und das Prog. noch so ist wie dein letztes,
überschreibst du in der SUB "ms" REG1 und REG2 oder besser sie kommen
mit 0 zurück -> Push/Pop vergessen.
Viel Erfolg, Uwe
Ich hatte auch Probleme mit LCDs
Diese Lib funktioniert bei mir mit einem Mega8 1Mhz stabil. Die
Pinbelegung ist zwar anders aber vllcht kannst du ja umlöten.
Aus irgendeinem Grund. den ich noch nicht herausgefunden habe,
funktioniert bei mir das LCD nur, wenn D4-D7 vom LCD am einem unteren
Nibble Px0-Px3 eines Ports angeschlossen sind (ja, ich hatte den code
angepasst):