PCFCNT.C2 - Hilfe


Beschreibung

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