STPORTS.C2 V1.06 - Hilfe


Beschreibung

Einfügen als Systemmodul

Konstanten

Funktionen:

init()
allon()
alloff()
setall()
getall()
set()
get()
tog()
pulse()
LCDlight()
getLCDlight()
togLCDlight()
setLED()
getLED()
togLED()
setRel()
getRel()
togRel()
setPort()
getPort()
togPort()
pulsePort()

Systemfunktionen:

_setall()
_setport()
_togport()
_pulseport()
_getport()

 

Beschreibung   Nach oben

Das Modul stports.c2 ist ein Treiber für die erweiterten Ausgänge der C-Control-II-Station.
Dazu zählen die 8 LEDs, die 2 Relais, die 5 Ports PO.0 bis .4 und die LCD-Beleuchtung.
Die Routinen sind in ASM geschrieben.
stports.c2 benötigt entweder OSOPT V3.0 hier sind die nötigen ASM-Routinen
bereits integriert, oder bei älteren Betriebssystemen den Systemtreiber sys0001.hex,
welcher mit einem Download-Tool in das Segment 3 geladen werden muß.
Dieser Systemtreiber wird ebenfalls von lcdext.c2 und rblcd.c2 benötigt.
Durch den ASM-Treiber werden hier keinerlei Captures mehr benötigt !
Deshalb muß in Verbindung mit stports.c2 das Modul lcdext.c2 ab V2.2 benutzt werden,
damit es keine Ressourcenkonflikte geben kann.
Das Modul stports.c2 ist außerdem schneller als das Original-Modul station_io.c2 .

Wichtiger Hinweis bei der Umstelleung von Projekten auf stports.c2 und lcdext.c2:
Die Module station_io.c2 und station_lcd.c2 sollten aus dem Projekt entfernt (deaktiviert)
werden. Auch sollte die dazugehörige Hex-Datei nicht mehr geladen werden.
Es kann ansonsten zu Problemen beim Schalten der erweiterten Station-Ports kommen.


Einfügen als Systemm
odul
   Nach oben

Die Datei stports.c2 in das Verzeichnis .\CControl2\Lib kopieren und in der Datei modules.txt
die Zeile stports.c2 unterhalb von ports.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.
Außerdem muß, wenn eine Betriebssystem-Version vor OSOPT V3.0 genutzt wird,
die Datei sys0001.hex mit den nötigen Systemroutinen mit dem Downloadtool
in die C-Control II geladen werden.
Der Systemtreiber sys0001.hex belegt den Adressbereich 0xD540 bis 0xD779
im Segment 3 des Flash. (569 Byte)
Ab OSOPT V3.0 ist sys0001.hex im Betriebssytem implementiert.


Konstanten   Nach oben

Einsprungadressen des ASM-Treibers:

// Einsprungadresse ASM-Routinen
// OSOPT V3.0:
const Segment  = 0x0000;
const _SETALL  = 0xD5DC;
const _SETPORT = 0xD5F2;
const _TOGPORT = 0xD61C;
const _PULSE   = 0xD634;
const _GETPORT = 0xD694;

// sys0001.hex:
const Segment  = 0x0300;
const _SETALL  = 0xD676;
const _SETPORT = 0xD68C;
const _TOGPORT = 0xD6B6;
const _PULSE   = 0xD6CE;
const _GETPORT = 0xD72E;

Bei Benutzung von OSOPT V3.0 werden die die oberen Einsprungadressen
benötigt. sys0001.hex muß dann nichtmehr geladen werden, da die nötigen Routinen
in OSOPT V3.0 bereits implementiert sind.
Wenn eine ältere OS-Version benutzt wird, müssen die unteren Einsprungadressen
benutzt und sys0001.hex in Segment 3 geladen werden.
Durch Auskommentieren der Konstantengruppen kann zwischen sys0001.hex und
den Routinen von OSOPT V3.0 "umgeschaltet" werden.


Funktionen:

init()   Nach oben

    function init()

Die Funktion init() initialisiert die Ports und setzt deren Pegel auf low(=aus).

allon()   Nach oben

    function allon()

Mit allon() wird der Pegel aller Ports auf high(=ein) gesetzt.


alloff()
   Nach oben

    function alloff()

Mit alloff() wird der Pegel aller Ports auf low(=aus) gesetzt.


setall()   Nach oben

    function setall(int state)

Mit setall() werden alle Ports entsprechend dem Bitmuster state gesetzt

state Bitmuster der Schaltzustände:
B0 bis B7 = LED1 bis LED8
B8 und B9 = Relais 1 & 2
Bit10 bis Bit14 = Ports PO.0 bis PO.4
Bit15 = LCD-Beleuchtung


getall()
   Nach oben

    function getall() returns int

Die Funktion getall() gibt die Schaltzustände aller Ports
als 16Bit Bitmuster zurück.


set()
   Nach oben

    function set(byte Port, int state)

Die Funktion set() setzt den angegebenen Port ensprechend des Werts state.

Port Port 0 bis 15
state Schaltzustand 0 = low   0!= high

 

get()   Nach oben

    function get(byte Port)

Mit der Funktion get() wird der Schaltzustand eines einzelnen Ports abgefragt.

Port Port 0 bis 15


tog()
   Nach oben

    function tog(byte Port)

Mit tog() wird der angegebene Port invertiert.

Port Port 0 bis 15


pulse()
   Nach oben

    function pulse(bytePort)

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)

Mit der Funktion LCDlight() wird die LCD-Beleuchtung geschaltet.

state Schaltzustand 0 = low   0!= high


getLCDlight()
   Nach oben

    function getLCDlight() returns int

Mit der Funktion getLCDlight() wird der Schaltzustand der LCD-Beleuchtung
abgefragt.


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)

Mit togLED() wird der Schaltzustand der angegebenen LED invertiert.

LED LED 1 bis  8



setRel()   Nach oben

    function setRel(byte Rel, int state)

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)

Mit togRel() wird der Schaltzustand des angegebenen Relais invertiert.

Rel Relais 1 bis 2



setPort()
   Nach oben

    function setPort(byte PO, int state)

Die Funktion setPort() schaltet die Ports PO.0 bis .4 entsprechend des Werts state.

PO 0 bis 4 = Port PO.0 bis PO.4
state Schaltzustand 0 = low   0!= high

 

getPort()   Nach oben

    function getPort(byte PO) returns int

Mit der Funktion getPort() wird der Schaltzustand des angegebenen
Ports zurückgegeben.

PO 0 bis 4 = Port PO.0 bis PO.4


togPort()
   Nach oben

    function togPort(byte Rel)

Mit togPort() wird der Schaltzustand des angegebenen Ports invertiert.

PO 0 bis 4 = Port PO.0 bis PO.4


pulsePort()
   Nach oben

    function pulsePort(byte PO)

Mit der Funktion pulsePort() wird ein kurzer Nadelimpuls an dem angegebenen
Port ausgegeben.

PO 0 bis 4 = Port PO.0 bis PO.4




System-Funktionen:

  inline function _setall(byte states[], int state)
  
inline function _setport(byte states[], byte Port, int state)
  
inline function _togport(byte states[], byte Port)
  
inline function _pulseport(byte states[], byte Port)
  
inline function _getport(byte states[], byte Port) returns int

Diese Funktionen werden zum Aufruf des Systemtreibers sys0001.hex benutzt.
Sie sollten ohne genauere Kenntnisse über die Funktion des Systemtreibers
nicht direkt genutzt werden !!


Autor: André Helbig   Mail: andre.h@cc2net.de    Erstellt: 1.1.2004