Der LC7985 Controller soll ja 100% kompatibel zum hd44870 Controller sein. Hab das nun so angelötet wie beim hd44870, aber es intialisiert sich nicht. $regfile = "m32def.dat" 'ATmega8 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.0 , Db7 = Portc.1 , E = Portd.4 , Rs = Portd.5 Config Lcd = 24 * 2 Config Lcdbus = 4 Do Cls Loop Ist ein Atmega32 und die Verkabelung stimmt 100%tig hab ich was vergessen?
Gast
#1548394
Oweh, beim dem Durcheinander von Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.0 , Db7 = Portc.1 würde es mir schwerfallen, die richtigen Init-Kommandos abzusenden. Kannst du das nicht "begradigen", z.B. DB7 an PortC-3 DB6 an PortC-2 DB5 an PortC-1 DB4 an PortC-0 Zumindest Halb-Byte-weise bliebe dann doch alles überschaubar...
wird immer in eine Zeile geschrieben. So ist das nunmal bei Basic
Gast
#1549217
Hm, BASIC wird ja traditionell als Spaghetti-Code-Sprache herabgewürdigt. Aber selbst in BASIC wäre es mir angenehmer, wenn die Port-Bits des µC in ihrer Reihenfolge mit den Input-Bits des LCD-Controllers korrespondieren würden. Ein paar Shift-Operationen sind ja flott programmiert, aber unnütze Verwürfelungen führen fix zu Fehlern. Wenn es denn in BASIC in einer Zeile stehen muss, hätte ich also die Zuordnung wenigstens folgendermaßen gewählt: Config Lcdpin = Pin , Db7 = Portc.3 , Db6 = Portc.2 , Db5 = Portc.1 , Db4 = Portc.0 , E = Portd.4 , Rs = Portd.5 ENABLE und RS müssen einzeln behandelt werden, da ist es egal, in welchem Bit welchen Ports die stehen. Aber wenn die Reihenfolge der Daten-Bits verwürfelt ist, ist auch schnell der INIT-Code falsch. So ist das nunmal bei Menschen ;-)
der code funktioniert mit nem HD44780 ohne probleme nur nicht an dem LC7985
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.