PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erste Lcd ansteuerung geht nicht :-(



Viecherl
19.11.2010, 01:37
Hallo,

ich habe ein 16x2 lcd an einen mega16 angeschlossen und wollte dies nun mit dem tutorial ansteuern.

$regfile = "m16def.dat"
$crystal = 1000000

Config Portd = Output
Config Portb = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.0
Config Lcdbus = 4

Portd.0 = 0 "R/W"
Portb.0 = 0 "DB0"
Portd.1 = 0 "DB1"
Portd.2 = 0 "DB2"
Portd.3 = 0 "DB3"


Cls
Locate 1 , 1
Lcd "Test"
End


allerdings passiert überhaupt nichts.
ich habe alle pins nachgemessen, es kommt alles dort an wo es hin soll.

über hilfe würde ich mich freuen!!

PS: die ersten 4 von portd schalte ich softwaremäßig auf gnd, da immer nur von 4 bit ansteuerung die rede ist.

Gruß, Philipp

PICture
19.11.2010, 02:36
Hallo!


PS: die ersten 4 von portd schalte ich softwaremäßig auf gnd, da immer nur von 4 bit ansteuerung die rede ist.

Ich kann dir als PIC Benutzer mit der Software leider nicht helfen, habe aber im 4-bit Modus die 4 niedrigste Bits vom Display unbeschaltet gelassen und es hat immer funktioniert. ;)

MfG

Viecherl
19.11.2010, 02:51
mhh.. funktioniert leider auch nicht.

war nicht noch irgendwas mit dem portB ?
ich habe früher mal mehr gemacht und kann mich erinnern das da was war..

PICture
19.11.2010, 02:56
Na ja, dann müsste noch ein Softwarefehler sein ... :(

MfG

Jaecko
19.11.2010, 07:48
Bei PortC gibts die Gemeinheit mit JTAG, aber der wird ja hier nicht verwendet.

Mach vor das CLS mal ein waitms 500 und danach ein LCDInit (Oder InitLCD?). Möglicherweise will der AVR das Display schon initialisieren, während das selber noch nicht mal gestartet ist.

Viecherl
19.11.2010, 10:07
leider auch nicht.
ich hatte auch nicht erwähnt, das nur die erste displayzeile leuchtet.

Jaecko
19.11.2010, 10:35
Genau, also wenn nur die erste Zeile "dunkler" ist, und die 2. total blass, dann hat die Initialisierung nicht hingehauen.

Weiterer Trick: Der Controller läuft ja der Angabe nach mit den 1MHz intern?
Wenn das stimmt, änder die $Crystal-Angabe mal auf 2 bzw. 4 MHz, ohne den internen Takt zu ändern. Dann läuft die Software langsamer. Wenn das Display jetzt reagiert, stimmt das Init-Timing nicht.

Welches Display ist das denn eigentlich? Schon HD44780-Kompatibel?

Viecherl
19.11.2010, 10:46
dankeschön!

habe jetzt einen externen quarz dran und alles geht.