Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo > an alle Freunde des 3x12 Display von Conrad (EA7123-I2C) > > hatte bei meinem letzten posing nicht bedacht das sich doch so viele Leutchen mit dem Display > befassen. > > habe jetzt von Freitag bis Montag 42 E-mail Anfragen für den Init-Code bekommen. > > Sorry - ich kann beim besten Willen nicht alle persönlich anscheiben - (zeitgründe) > > deshalb hier meine Erfahrungen für alle öffentlich. > > Grundsätzlich muß man unterscheiden zwischen Single Supply und Dual Power > > Ich betreibe mein Display momentan versuchsweise am Conrad App-Board mit 0V und +5V > alle hier gemachten Aussagen gelten auch nur für Single Supply Gnd und 5V > > Hier mal die Stolpersteine für den Anfänger: > > so gehts nicht: > Die IC intern erzeugte Negativspannung für das LCD wird mit bit G=1 eingeschaltet. > wenn G=0 muß daß Kontrastpoti am Schleifer ca. 0.18V haben > Das Display zeigt dann nur Zeile 1 und 2 und in der 3. Zeile erscheint die Information von Zeile 1 > > so ist es richtig > G=1 > N und M =1 (4 Zeilen) > Das Kontrastpoti muß am Schleifer ca. 1.8 Volt haben > Das Display muß mit D=1 eingeschaltet werden. (wichtig) > > dann braucht man mindestens: > > I2C_Init(I2C_100kHz); // I2C Bit Rate: 100 kHz > > //-------------------------- Disp 3x12 init > I2C_Start(); // LCD-Init > I2C_Write(0x74); // adresse > I2C_Write(0x00); // nop > I2C_Write(0x2e); // funktion set > I2C_Write(0x0f); // display on off cursor 0d=Cursor an > I2C_Write(0x06); // entry mode > I2C_Write(0x01); // Adr im DDRAM 01=clear 02=home > AbsDelay(10); // notwendig nach clear ??? ist noch nicht klar ob das notwendig ist > I2C_Stop(); // > > //-------------------------- Disp 3x12 Curser positinieren > I2C_Start(); // Cursor auf Zeile 1 Pos 1 > I2C_Write(0x74); > I2C_Write(0x00); > I2C_Write(0x02); > I2C_Stop(); > > //-------------------------- Disp 3x12 Zeichen ausgeben nur zum Test > for (z=70;z<150;z++) > { > I2C_Start(); > I2C_Write(0x74); > I2C_Write(0x40); // schreibe jetzt > I2C_Write(z); // Buchstabe > I2C_Stop(); AbsDelay(200); // delay nur damit mein Auge folgen kann > } > > > habe es aus Zeitgründen noch nicht geschafft den Cursor beliebig zu positionieren > bin mir auch nocht nicht klar ob das delay noch CLEAR oder HOME notwendig ist. > > so läuft es jetzt bei mir versuchsweise auf dem Conrad App-Board. > > Wenn jemand den Cursor positionieren kann - bitte mail an mich > > gruß aus Aalen > ortwin > > > > > > > > > > > > > > >