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 |
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 |
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 |
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