PCF.C2 V2.1 - Hilfe


Beschreibung

Einfügen als Systemmodul

Konstanten

Funktionen:

init()
out()
putn()
send()
sendn()
on()
off()
set()
toggle()
pulse()
in()
getn()
get()


Beschreibung   Nach oben

Das Modul pcf.c2 ist ein Treiber zum einfachen Ansteuern des I²C-Bus-
Portexpanders PCF8574 und den CCTools Bausteinen
SR/PCF-Rel8 PCF-Version, PCF-RT4-HS und PCF-Ports-HS
In V2.1 wurde ein Datenpuffer hinzugefügt, um die Ausgangspegel
des PCF8574 zwischenzuspeicher, da es vorher zu Probleme kam,
wenn ein Baustein für Ein-und Ausgänge benutzt wird.
Außerdem ist das Capture auf das I²C-Capture angepasst.



Einfügen als Systemmodul
   Nach oben

Die Datei pcf.c2 in das Verzeichnis .\CControl2\Lib der IDE
kopieren und in der Datei modules.txt die Zeile pcf.c2  
unterhalb von i2c.c2 einfügen.
Ein zusätzliches Ausrufezeichen unmittelbar nach einem Modulnamen in modules.txt bestimmt,
daß das Modul in jedem neuen Projekt von Anfang an aktiviert wird.


Konstanten   Nach oben

const Addr[] =0x40,0x42,0x44,0x46,0x48,0x4A,0x4C,0x4E,
              0x70,0x72,0x74,0x76,0x78,0x7A,0x7C,0x7E;
const
AddrR[]=0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,
              0x71,0x73,0x75,0x77,0x79,0x7B,0x7D,0x7F;
Dies sind die Schreib-und Leseadressen der PCF8574 und PCF8574A-Bausteine.
Die Adressen mit dem Index 0 bis 7 stehen für den Baustein PCF8574 und
die mit dem Index 8 bis 15 für den Baustein PCF8574A


Funktionen:


init()   Nach oben

    function init() returns int

Mit der Funktion init() wird der Schaltzustand aller angeschlossenen
Portexpander gelesen und in die Puffervariable Data[] abgelegt.
Außderdem wird ein 16Bit Bitmuster zurückgegeben, anhand dessen
man überprüfen kann, an welcher Adresse sich ein Baustein befindet.
Bit0 bis Bit15 entsprechen den Adressen 0 bis 15 (0-7 PCF8574, 8-15 PCF8574A)
Es muß dabei beachtet werden, daß z.B. das interne LCD der CC2-Unit
die Bus-Adresse 116 (0x74) und der SAA1064 des CC2Net-RAM-Interface I²C
die Bus-Adresse 112 (0x70) besitzen und so den Adressbereich des PCF8574A
überlappen.


out()   Nach oben

    function out(byte addr, byte data) returns int

Mit der Funktion out() werden die Ports des Bausteins entsprechend
dem Bitmuster von data gesetzt. 
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
data Datenbyte


putn()   Nach oben

    function putn(byte addr, byte nibble, byte data) returns int

Die Funktion putn() wird ein Nibble-Port(4 Ports) entsprechend
dem Bitmuster von data gesetzt.(Bit 0 bis 3)
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
nibble Nibble Port: 0: P.0 bis .3, 1: P.4 bis .7
data Datennibble (Bit 0 bis 3)


send()   Nach oben

    function send(byte addr, byte data[], byte length) returns int

Die Funktion send() sendet ein Bytearray zum angegebenen Portexpander.
So kann z.B. eine an einen PCF8574 angeschlossene Logikschaltung leicht 
angesteuert werden.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten, oder wenn length<= 0 ist, False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
data[] Bytepuffervariable
length Anzahl zu sendender Bytes


sendn()   Nach oben

    function sendn(byte addr, byte nibble, byte data[], byte length) returns int

Die Funktion send() sendet ein Nibblearray zum angegebenen Portexpander.
So kann z.B. eine an einen PCF8574 angeschlossene Logikschaltung leicht 
angesteuert werden.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten, oder wenn length<= 0 ist, False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
nibble Nibble Port: 0: P.0 bis .3, 1: P.4 bis .7
data[] Bytepuffervariable für Nibble-Array (Bit 0 bis 3)
length Anzahl zu sendender Bytes


on()   Nach oben

    function on(byte addr, byte port) returns int

Die Funktion on() setzt den angebenen Ports des angegbenen Portexpanders
auf einen high-Pegel(=Eingang).
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7

off()   Nach oben

    function off(byte addr, byte port) returns int

Die Funktion off() setzt den angebenen Ports des angegbenen Portexpanders
auf einen low-Pegel.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7

set()   Nach oben

    function set(byte addr, byte port, int state) returns int

Die Funktion set() setzt den angebenen Ports des angegbenen Portexpanders
nach state
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7
state Schaltzustand 0=low, !=0 = high


toggle()
   Nach oben

    function toggle(byte addr, byte port) returns int

Mit der Funktion toggle() wird der Pegel des angegeben Ports invertiert.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7


pulse()   Nach oben

    function pulse(byte addr, byte port) returns int

Mit der Funktion pulse() wird am angegebenen Port ein kurzer
Nadelimpuls ausgegeben.(zweimaliges  invertieren).
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7


in()
   Nach oben

    function in(byte addr) returns byte

Die Funktion in() liest den Portzustand des angegebenen Portexpanders ein und gibt
diesen als Bitmuster zurück.

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A


getn()   Nach oben

    function getn(byte addr, byte nibble) returns byte

Mit der Funktion getn() wird der Portzustand des Nibble-Ports nibble
des angegebenen Bausteins eingelesen und als Bitmuster zurückgegeben.

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
nibble Nibble Port: 0: P.0 bis .3, 1: P.4 bis .7


get()   Nach oben

    function get(byte addr, byte port) returns int

Mit der Funktion get() wird der Portzustand des Ports port
des angegebenen Bausteins abgefragt, und entsprechend True(-1) für high
und False(0) für low zurückgegeben.

addr Baustein: 0-7 PCF8574, 8-15 PCF8574A
port Port 0 bis 7



Autor: André Helbig   Mail: andre.h@cc2net.de    Erstellt: 2.8.2003