Funktionen:
Reset()
setPSC()
setPWM()
setLS()
setLSAll()
get()
getb()
getLS()
getLSAll()
getReg()
getRegAll()
Beschreibung Nach oben
Das Modul pca9531.c2 ist ein Treiber für den I²C-LED-Dimmer-IC
PCA9531
und dem
dem CCTools
Baustein "I2C-LEDDIMM HS".
Das Modul ermöglicht das einstellen der beiden PWM-Controller, sowie
das Zuweisen der einzelnen Ports zu definiierten Pegeln oder einen der beiden
PWM-Controller.
Alle Funktionen sind über das I²C-Capture gecaptured.
Einfügen als Systemmodul
Nach oben
Die Datei pca9531.c2 in das Verzeichnis .\CControl2\Lib
der IDE
kopieren und in der Datei modules.txt die Zeile pca9531.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[]
=0xC0,0xC2,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE;
const AddrR[]=0xC1,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF;
Dies sind die Schreib-und Leseadressen des PCA9531.
const Input =
0;
const PSC0 = 1;
const PWM0 = 2;
const PSC1 = 3;
const PWM1 = 4;
const LS0 = 5;
const LS1 = 6;
Dies sin die einzelnen Register des ICs.
Funktionen:
Reset()
Nach oben
function Reset(byte addr) returns int
Mit der Funktion Reset() setzt alle Register auf die Standardwerte.
Die Ports werden dabei auf Hi-Zero gesetzt. (LEDs aus)
Die Funktion gibt True(-1) zurück, wenn an der angegebenen Adresse
ein Baustein angeschlossen ist, andernfalls False(0).
addr | Baustein: 0-7 |
setPSC()
Nach oben
function setPSC(byte addr, byte psc, byte value) returns int
Mit der Funktion setPSC() wird das jeweilige Prescaler-Register
der PWM-Controller gesetzt. Zulässige Werte sind 0 bis 255.
Es können so Frequenzen von 0,591Hz bis 152Hz eingestellt werden.
Der Wert für eine Frequenz wird durch folgende Formel berechnet:
value = (152/f)-1
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).
addr | Baustein: 0-7 |
psc | Prescaler-Register 0= PWM-Controller 0 1= PWM-Controller 1 |
value | Prescaler-Wert 0 - 255 |
setPWM() Nach oben
function setPWM(byte addr, byte pwm, byte value) returns int
Mit der Funktion setPWM() wird das Puls-Pausen-Verhältnis der
der PWM-Controller
gesetzt. Zulässige Werte sind 0 bis 255.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).
addr | Baustein: 0-7 |
pwm | Pulweiten-Register 0= PWM-Controller 0 1= PWM-Controller 1 |
value | PWM-Wert 0 - 255 |
setLS() Nach oben
function setLS(byte addr, byte port, byte state) returns int
Die Funktion setLS() weist dem angegebenen Ports einen von 4
möglichen
Zuständen/Signale zu. Der Port kann als Hi-Zero (=Eingang/LED aus), als
Low-Pegel
gesetzt werden oder einem der beiden PWM-Controllern zugeordnet werden.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).
addr | Baustein: 0-7 |
port | Port 0 - 7 |
state | 0= Hi-Zero (LED aus) 1= Low (LED ein) 2= PWM 0 3= PWM 1 |
setLSAll() Nach oben
function setLSAll(byte addr, byte states) returns int
Die Funktion setLS() weist allen 8 Ports einen von 4 möglichen
Zuständen/Signale zu,
welche über einen Integerwert bitcodiert übergeben werden.
Je zwei Bit entsprechen einem Port.
Die Ports können als Hi-Zero (=Eingang/LED aus), als Low-Pegel gesetzt werden
oder einem der beiden PWM-Controllern zugeordnet werden.
Die Funktion gibt True(-1) zurück, wenn sich ein Baustein unter der angegebenen
Adresse befindet, ansonsten False(0).
addr | Baustein: 0-7 |
states | 16Bit Bitmuster aller 8 Ports. (Bitzuordnung: 7766554433221100) 0b00= Hi-Zero (LED aus) 0b01= Low (LED ein) 0b10= PWM 0 0b11= PWM 1 |
get() Nach oben
function get(byte addr, byte port) returns int
Die Funktion get() liefert den aktuellen Zustand(True(-1)/False(0)) den angegebenen Ports zurück.
addr | Baustein: 0-7 |
port | Port 0 bis 7 |
getb() Nach oben
function getb(byte addr) returns int
Die Funktion get() liefert den aktuellen Zustand des kompletten
Byteports
als Bitmuser zurück.
addr | Baustein: 0-7 |
getLS()
Nach oben
function getLS(byte addr, byte port) returns int
Die Funktion getLS() gibt die aktuelle Portzuweisung des
angegebenen Ports zurück.
Es werden folgende Werte zurückgegeben: 0=Hi-Z, 1=Low, 2=PWM0, 3=PWM1
addr | Baustein: 0-7 |
port | Port 0- 7 |
getLSAll()
Nach oben
function getLSAll(byte addr) returns int
Die Funktion getLS() gibt die aktuelle Portzuweisung aller Ports
als 16Bit-Bitmuster zurück.
Die Portzuweisung ist in je zwei Bit codiert.
addr | Baustein: 0-7 |
getReg()
Nach oben
function getReg(byte addr, byte reg) returns int
Die Funktion getReg() liefert den Wert des angegebenen Registers zurück.
addr | Baustein: 0-7 |
reg | Register 0-6 |
getRegAll()
Nach oben
function getRegAll(byte addr, byte data[]) returns int
Mit der Funktion getRegAll() können alle Register des PCA9531,
mit Ausnahme
des Registers 0, abgefragt und in ein angegebenes Bytearray mit einer
mindestgröße
von 6 Byte gespeichert 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 |
data | Bytearray mit mind. 6Byte Größe für die Registerwerte |
Autor: André Helbig Mail: mail@cc2net.de
Erstellt: 22.1.2006