Einfügen als gemeinsames Modul
Funktionen:
init()
get()
getCounter()
Threads:
getCnt{}
Beschreibung Nach oben
Das Modul pcfcnt.c2 ist der Treiber für den CCTools
8Bit
I²C-Bus-Impuls-Zähler I2C-CNT8.
Einfügen als gemeinsames Modul
Nach oben
Die Datei pcfcnt.c2 in das Verzeichnis .\CControl2\UserLib
kopieren und in der Datei modules.txt
die Zeile pcfcnt.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.
Funktionen:
init() Nach oben
function init(byte Devices, byte IntPort, int runGetCnt) returns int
Die Funktion init() initialisiert alle mit Devices angegebenen
Zählerbausteine.
Mit Devices wird als Bitmuster angegeben an welchen Adressen sich
Zählerbausteine befinden.
Es wird ein Wert als Bitmuster zurückgegeben, an welchen Adressen sich
Bausteine befinden.
Ist der Wert ungleich Devices, so wurden weniger Zählerbausteine als
angegeben gefunden.
Devices | Bitmuster mit Adressen der zu
initialisierenden Bausteine. Bit 0-7 enspricht PCF8574 Bit 8-15 entspricht PCF8574A Bsp.: je ein I2C-CNT an Addr. 0 und 3: 0b1001 |
IntPort | I/O-Port, welcher als Interrupteingang benutzt wird. (0-15) |
runGetCount | Wenn True (ungleich 0), wird der Thread
getCnt gestartet, welcher alle Zähler bei einem Interrupt selbständig abfragt. |
get() Nach oben
function get(byte addr, int clear) returns int
Mit get() wird der durch den thread getCnt erfasste
Zählerwert ausgelesen.
Mit dem Parameter clear wird angegeben, ob der Zähler beim Auslesen
zurückgesetzt werden soll.
Die Funktion gibt den Zählerwert zurück.
addr | Baustein Adresse 0-7 PCF8574 8-15 PCF8574A |
clear | Wenn True (ungleich 0) wird der Zähler nach dem Auslesen auf 0 zurückgesetzt. |
getCounter() Nach oben
function getCounter(byte addr, int clear) returns int
Mit getCounter() wird der angegebene Zählerbaustein abgefragt,
wenn
der Thread getCnt nicht benutzt wird.
Die Funktion summiert die Zählerwerte über ein globales Datenarray auf,
wenn clear auf False(gleich 0) steht.
Die Funktion gibt den Zählerwert zurück
addr | Baustein Adresse 0-7 PCF8574 8-15 PCF8574A |
clear | Wenn True (ungleich 0) wird der Zähler nach dem Auslesen auf 0 zurückgesetzt. |
Beispiel zu getCounter(): (Ein Zähler mit PCF8574 an Addr. 3, Interrupt an
P1L.3)
thread main
{
hwcom.init();
hwcom.setspeed(8)
pcfcnt.init(0b1000,
3, 0);
loop
{
wait not ports.get(pcfcnt.Int);
hwcom.clr();
hwcom.num(pcfcnt.getCounter(3,0));
sleep 50;
}
}
Threads:
getCnt() Nach oben
thread getCnt{}
Dieser Thread liest die angeschlossenen Zählerbausteine automatisch ein,
sobald ein Interrupt von mind. einem Baustein gemeldet wird.
Dieser Thread kann über die Funktion init()
durch den Parameter runGetCnt gestartet werden.
Author: André Helbig Mail: andre.h@cc2net.de
Erstellt: 2.2.2004 ©www.CC2Net.de