Einfügen als Gemeinsames Modul
Funktionen:
init()
Reset()
ready()
rxd()
put()
send()
get()
receive()
Beschreibung Nach oben
Das Modul i2ckop.c2 ist ein Treiber für den CCTools
I²C-Koppler.
Mit diesem ist es möglich mehrere C-Controls über den I²C-Bus zu verbinden.
Das ist bei der Verwendung der CC2 zusammen mit der CC1 sehr hilfreich,
da so keine serielle Schnittstelle "geopfert" werden muss.
Einfügen als Gemeinsames Modul
Nach oben
Die Datei i2ckop.c2 in das Verzeichnis .\CControl2\Userlieb
kopieren und in der Datei modules.txt
die Zeile i2ckop.c2 einfügen.
Ein zusätzliches Ausrufezeichen unmittelbar nach einem Modulnamen in modules.txt
bestimmt,
dass das Modul in jedem neuen Projekt von Anfang an aktiviert wird.
Funktionen:
function init(byte addr) returns int
Die Funktion init() initialisiert den I²C-Koppler mit der
angegebenen Adresse.
Es wird -1(True) zurückgegeben, wenn ein I²C-Koppler unter der angegebenen
Adresse gefunden wurde, ansonsten 0(False), wenn sich dort keiner befindet.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
Reset()
Nach oben
function Reset(byte addr)
Mit der Funktion Reset() wird der Sendeteil des I²C-Kopplers
zurückgesetzt, und
somit auch der Sendepuffer gelöscht.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
ready() Nach oben
function ready(byte addr) returns int
Mit der Funktion ready() wird auf Sendebereitschaft geprüft.
Die Funktion gibt 0 zurück, wenn der Sendepuffer voll ist, und -1,
wenn dieser noch Daten aufnehmen kann.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
rxd() Nach oben
function rxd(byte addr) returns int
Die Funktion rxd() prüft, ob sich Daten im Empfangspuffer befinden,
und
gibt dann -1 zurück. Andernfalls 0.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
put() Nach oben
function put(byte addr, byte data)
Mit der Funktion put() wird ein einzelnes Byte gesendet.
Ist der Sendepuffer voll, wartet die Funktion solange, bis in diesem
wieder Platz ist.
Die Funktion gibt -1 zurück, wenn sich an der angegebenen Adresse ein
I²C-Koppler befindet. Andernfalls 0.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
data | Datenbyte (0-255) |
send() Nach oben
function send(byte addr, byte data[], int len, int timeout) returns int
Mit der Funktion send() kann ein Bytearray gesendet werden.
Es kann ein Timeout angegeben werden, wie lange gewartet werden soll
bis der Sendepuffer wieder Platz bietet, wenn dieser voll ist.
Die Funtion gibt die Anzahl der gesendeten Bytes zurück.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
data[] | Bytepuffervarible |
len | Länge des Bytepuffers |
timeout | Wartezeit in ms solange auf Sendebereitschaft gewartet werden soll, bevor der Sendevorgang abgebrochen wird |
get()
Nach oben
function get(byte addr) returns int
Mit der Funktion get() wird ein einzelnes Zeichen aus dem Empfangspuffer
gelesen.
Ist dieser leer, wird solange gewartet, bis sich wieder Daten in diesem
befinden.
Die Funktion gibt den Wert des gelesenen Byte zurück (0-255). Befindet
sich kein I²c-Koppler an der angegebenen Adresse, wird -1 zurückgegeben!
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
receive()
Nach oben
function receive(byte addr, byte data[], int len, int timeout)
Die Funktion receive() empfangt einen Datenrahmen mit der angegeben
Länge
und schreibt diesen in das angegebene Bytearray.
Es kann ein Timeout angegeben werden, wie lange auf Daten gewartet werden soll.
Werden innerhalb des Timeouts keine weiteren Daten empfangen, bricht die
Funktion ab
und gibt die Anzahl der empfangenen Bytes zurück.
addr | Adresse des Bausteins (0-7 = PCF8574; 8-15 = PCF8574A(mit Adr. 0-7)) |
data[] | Bytepuffervariable für die Daten |
len | Länge des Bytepuffers |
timeout | Wartezeit in ms solange auf das nächste
Datenbyte gewartet werden soll, bevor der Empfangsvorgang abgebrochen wird |
Autor: André Helbig Mail: andre.h@cc2net.de
Erstellt: 16.3.2003