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

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> 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: > <code>/* P0= RS */ > /* P1= R/W */ > /* P2= E */ > /* P3= LCD-Light */ > /* P4-7= Data */ > </code> > > In Deinem Fall ändert sich das aber zu folgendem: > <code>/* P0= RS */ > /* P1= LCD-Select */ > /* P2= E */ > /* P3= LCD-Light */ > /* P4-7= Data */ > </code> > > Um bei Deinem Beispiel zu bleiben, welches vom Ansatz schon korrekt war: > <code>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; > ... > </code> > > 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: > <code>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 > ... > </code> > > Mehr muß nicht geändert werden. > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB