Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: 4 Zeilen/40 Zeichen LCD über I²C Kategorie: Programmierung (von André H. - 24.04.2009 10:57)
Als Antwort auf 4 Zeilen/40 Zeichen LCD über I²C von Michael - 24.04.2009 9:34
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
Hallo Michael,

> Bin gerade dabei die Funktionen in pfdlcd.c2 auf ein 4 Zeilen/40 Zeichen LCD anzupassen.
> Habe dazu das pfdlcd- Interface und den 4x40 LCD- Adapter von CCTools im Einsatz.
> Werde die R/W- Leitung als 2. Enable verwenden. Der erste LCD- Controller funktioniert schon,
> ...
> Wenn ich das 2. Display ansprechen will und dazu in den Funktionen in pfdlcd.c2 den R/W- Port
> aktiviere, muss ich dann den Enable- Port (E1) trotzdem auf â??highâ?? lassen oder nicht?

Nein. Es wird nur ein High-Impuls ausgegenen.
Im Ruhezustand sollte Enable auf low bleiben.

> Habe es mal so probiert, dass ich in meine Ansteuer- Funktionen immer das entsprechende Enable
> setze und das Andere zurücksetze. Also entweder der E-Port oder R/W-Port.
> Das funktioniert aber nicht.
> In der Doku zum  4x40 LCD- Adapter steht nur, dass man über Jumper auch das R/W- Signal
> als E2 verwenden kann (was ich natürlich getan habe).
> Aber nicht, ob das Enable in diesem Fall für beide Controller gilt und der Adapter selbstständig
> am Ausgang zum LCD entsprechen E1 oder E2 aktiviert.

Doch, in der Anleitung zum 4x40 Adapter steht genau dies.
Enable in Deinem Fall vom PCFLCD-Adapter bleibt Enable für beide LCD-Hälften.
Wenn auf R/W zum umschalten gejumpert wird, dient die R/W-Leitung dazu,
zwischen den beiden Hälften umzuschalten. Low=obere Hälfte, High=untere Hälfte.

Die Ports des PCF-LCD-Interfaces werden standardmä�ig so verwendet:
/* P0= RS                                                         */
/* P1= R/W                                                        */
/* P2= E                                                          */
/* P3= LCD-Light                                                  */
/* P4-7= Data                                                     */


In Deinem Fall ändert sich das aber zu folgendem:
/* P0= RS                                                         */
/* P1= LCD-Select                                                 */
/* P2= E                                                          */
/* P3= LCD-Light                                                  */
/* P4-7= Data                                                     */


Um bei Deinem Beispiel zu bleiben, welches vom Ansatz schon korrekt war:
function select(byte select)
{//wenn select true (ungleich 0) dann untere hälfte, sonst obere
 enable=(select!=0) and 0x02;
}

function init ()
{
 light=light and 8;
 i2c.cstart(PCF);
 i2c.write(0x30 or light or enable);
 i2c.write(0x30 or light or enable);
 i2c.write(0x30 or light or enable); // Function Set 8 Bit Controller 1/2
 i2c.write(0x30 or light or enable);
 sleep 2;
...


Allerdings würde ich hierfür eher die bereits vorhandene Variable "light" mi�brauchen.
Dann mu� nur an zwei Stellen etwas geändert werden und die Ausführungsgeschwindigkeit
wird nicht verlangsamt:
function setLight(byte state)
{
 i2c.cstart(PCF);
// light= (state!=0) and 8;
 light= ((state!=0) and 8) or (light and 2); // R/W beibehalten
 i2c.write(light);
 i2c.stop();
}

function select(byte select)
{//wenn select true (ungleich 0) dann untere Hälfte, sonst obere
 light=(light and 8) or ((select!=0) and 2);
}

function init ()
{
// light=light and 8;
 light=light and 10; //0b1010
...


Mehr mu� nicht geändert werden.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: 4 Zeilen/40 Zeichen LCD über I²C (von Michael - 29.04.2009 15:19)
    Re: 4 Zeilen/40 Zeichen LCD über I²C (von André H. - 3.05.2009 11:25)
        Re: 4 Zeilen/40 Zeichen LCD über I²C (von Michael - 4.05.2009 13:00)
            Re: 4 Zeilen/40 Zeichen LCD über I²C (von André H. - 10.05.2009 16:27)
    Re: 4 Zeilen/40 Zeichen LCD über I²C (von Andi - 30.04.2009 7:26)