Funktionen: init() |
Beschreibung Nach oben
Das Modul stports2.c2 ist ein Treiber für die erweiterten Ausgänge der
C-Control-II-Station Rev. 1.1.
(Advanced CC2-Station)
Dazu zählen die 8 LEDs, die 2 Relais, die 5 Ports PO.0 bis .4 und die
LCD-Beleuchtung.
Diese erweiterten Ports basieren auf dem I²C-Portexpander MAX7311.
Einfügen als Systemmodul
Nach oben
Das Modul ist derzeit im Betastatus. Es sollte vorerst nur als Programmodul
verwendet werden.
Die Datei stports2.c2 in das Verzeichnis .\CControl2\Lib
kopieren und in der Datei modules.txt
die Zeile stports2.c2 unterhalb von max7311.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
Einsprungadressen des ASM-Treibers:
const MAX7311Addr= 0;
// sys0001.hex: Subadresse MAX7311
const PM0 = 0;
// Klemme 7
const PM1 = 1;
// Klemme 8
const PM2 = 2;
// Klemme 9
const PM3 = 3;
// Klemme 10
const PM4 = 4;
// Klemme 11
const LCDLight = 5; // Displaybeleuchtung
const REL1 = 6;
// Relais K1
const REL2 = 7;
// Relais K2
const LED1 = 8;
const LED2 = 9;
const LED3 =10;
const LED4 =11;
const LED5 =12;
// Über Jumper als Host-LED konfigurierbar. In diesem Fall hier ohne Funktion!
const PM12 =12;
// Klemme 15
const LED_F1 =13;
const LED_F2 =14;
const LED_F3 =15;
// Offset für Portnummern
const LEDoffset = 8;
const RELoffset = 6;
Funktionen:
init() Nach oben
function init(int PM12IO, int ResetStates)
Die Funktion init() initialisiert die Ports und setzt deren Pegel
auf low(=aus), wenn
ResetStates true ist. Lediglich die Displaybeleuchtung wird gedimmt
eingeschaltet.
Zudem kann Port PM12 als Eingang definiert werden, wenn für PM12IO ein Wert
ungleich null übergeben wird.
PM12IO | true(!=0): Port PM.12 als Eingang false(0): Port PM.12 als Ausgang |
ResetStates | true: alle Ausgänge auf Low setzen (LEDs und Relais, nicht PM-Ports) |
setDDRall()
Nach oben
function setDDRall(int DDR) returns int
Mit setDDRall() kann über ein Bitmuster bestimmt werden, welche
Ports
des MAX7311 als Aus- und welche als Eingänge genutzt werden.
Die Funktion gibt True(-1) zurück, wenn der MAX7311 ansprechbar ist, andernfalls False(0).
DDR | Bitmuster für DDR-Register. High-Bit=Eingang,
Low-Bit=Ausgang Bei setDDR() 0=Ausgang, ungleich 0 =Eingang |
setall()
Nach oben
function setall(int state) returns int
Mit setall() werden alle Ports entsprechend dem Bitmuster state gesetzt
state | Bitmuster der Schaltzustände: Bit0 bis Bit4 = Ports PM.0 bis PM.4 Bit5 = LCD-Beleuchtung Bit6, 7 = Relais 1 & 2 Bit8 bis B15 = LED1 bis LED8 Bit12 = Port PM.12/LED5 |
getall()
Nach oben
function getall() returns int
Die Funktion getall() gibt die Schaltzustände aller
Ports
als 16Bit Bitmuster zurück.
setDDR() Nach oben
function setDDR(int Port, int direction) returns int
Mit setDDR() kann die ein einzelner Port als Aus-oder Eingang
definiert werden.
Die Funktion gibt True(-1) zurück, wenn der MAX7311 ansprechbar ist, andernfalls False(0).
Port | Port 0 bis 15 |
direction | True(!=0): Eingang Low(=0): Ausgang |
set() Nach oben
function set(byte Port, int state) returns int
Die Funktion set() setzt den angegebenen Port ensprechend des Werts state.
Port | Port 0 bis 15 |
state | Schaltzustand 0 = low 0!= high |
deact() Nach oben
function deact(byte Port) returns int
Die Funktion deactt() setzt den angegebenen Port als Eingang.
Port | Port 0 bis 15 |
get() Nach oben
function get(byte Port) returns int
Mit der Funktion get() wird der Schaltzustand eines einzelnen Ports abgefragt.
Port | Port 0 bis 15 |
tog()
Nach oben
function tog(byte Port) returns int
Mit tog() wird der angegebene Port invertiert.
Port | Port 0 bis 15 |
pulse() Nach oben
function pulse(bytePort) returns int
Mit der Funktion pulse() wird ein kurzer Nadelimpuls an
dem angegebenen
Port ausgegeben.
Port | Port 0 bis 15 |
LCDlight() Nach oben
function LCDlight(int state) returns int
Mit der Funktion LCDlight() wird die LCD-Beleuchtung
geschaltet.
Es kann dabei zwischen aus, gedimmt und ein gewählt werden.
state | 0 =aus 2 = ein, gedimmt !=0 & !=2 = ein, volle Helligkeit |
getLCDlight()
Nach oben
function getLCDlight() returns int
Mit der Funktion getLCDlight() wird der Schaltzustand der
LCD-Beleuchtung
abgefragt. Es werden dabei die Werte 0(aus), -1(ein) oder 2(gedimmt)
zurückgegeben.
togLCDlight()
Nach oben
function tog(byte Port)
Mit togLCDlight() wird der Schaltzustand der LCD-Beleuchtung invertiert.
setLED() Nach oben
function setLED(byte LED, int state)
Die Funktion setLED() schaltet die angegebene LED entsprechend des Werts state.
LED | LED 1 bis 8 |
state | Schaltzustand 0 = low 0!= high |
getLED() Nach oben
function getLED(byte LED) returns int
Mit der Funktion getLED() wird der Schaltzustand der
angegebenen
LED zurückgegeben.
LED | LED 1 bis 8 |
togLED()
Nach oben
function togLED(byte LED) returns int
Mit togLED() wird der Schaltzustand der angegebenen LED invertiert.
LED | LED 1 bis 8 |
setRel() Nach oben
function setRel(byte Rel, int state) returns int
Die Funktion setRel() schaltet das angegebene Relais entsprechend des Werts state.
Rel | Relais 1 bis 2 |
state | Schaltzustand 0 = low 0!= high |
getRel() Nach oben
function getRel(byte Rel) returns int
Mit der Funktion getRel() wird der Schaltzustand des
angegebenen
Relais zurückgegeben.
Rel | Relais 1 bis 2 |
togRel()
Nach oben
function togRel(byte Rel) returns int
Mit togRel() wird der Schaltzustand des angegebenen Relais invertiert.
Rel | Relais 1 bis 2 |
Autor: André Helbig www.CC2Net.de
Erstellt: 9.4.2008