Einfügen als Gemeinsames Modul
Funktionen:
fillpos()
fill()
copypos()
copy()
putint()
putlong()
putfloat()
getint()
getlong()
getfloat()
getMemAddrByte()
getMemAddrInt()
getMemAddrLong()
Beschreibung Nach oben
Das Modul mem.c2 beinhaltet mehrere nützliche Funktionen zum
Bearbeiten
von Bytearrays.
Ab V1.2 benötigt mem.c2 für die meisten Funktionen den ASM-Treiber
sys0002.hex,
welcher mit einem Download-Tool in Segment3 geladen werden.
sys0002.hex wird außerdem von den aktuellen Versionen von hwcom.c2, swcom.c2
und
strx.c2 benötigt.
Einfügen als Systemmodul Nach oben
Die Datei mem.c2 in das Verzeichnis .\CControl2\Lib
der IDE
kopieren.
Funktionen:
fillpos() Nach oben
inline function fillpos(byte buf[], int start, int length, byte value)
Mit der Funktion fillpos() wird ein Bytearray ab Posiotion start
mit
der angegebenen Anzahl gleicher Werte value gefüllt.
buf[] | Referenz auf Bytepuffervariable |
start | Startposition, ab der gefüllt werden soll |
length | Anzahl zu füllender Werte ab start |
value | zu füllender Wert (0-255) |
fill()
Nach oben
function fill(byte buf[], int length, byte value)
Mit der Funktion fillpos() wird ein Bytearray mit der angegebenen
Anzahl
gleicher Werte value gefüllt.
buf[] | Referenz auf Bytepuffervariable |
length | Anzahl zu füllender Werte |
value | zu füllender Wert (0-255) |
copypos()
Nach oben
inline function copypos(byte dest[], int destpos, byte src[], int srcpos, int len)
Mit copypos() wird der Inhalt des Bytearrays src[] ab Postion srcpos
mit
der Länge len in das Bytearray dest[] ab Position destpos
kopiert.
dest[] | Zielarray |
destpos | Position im Zielarray |
src[] | Quellarray |
srcpos | Position im Quellarray |
len | Anzahl zu kopierenden Bytes |
function copy(byte dest[], int pos, byte src[], int length)
Mit der Funktion copy() wird die Anzahl len Bytes vom
Bytearray src[] zum
Bytearray dest[] ab Position pos kopiert.
dest[] | Zielarray |
pos | Position im Zielarray |
src[] | Quellarray |
len | Anzahl zu kopierenden Bytes |
Speichern von Zahlen in einem Bytepuffer Nach oben
inline function putint(byte dest[], int pos, int value)
inline function putlong(byte dest[], int pos, long value)
inline function putfloat(byte dest[], int pos, float value)
Mit diesen Funktion wird ein Zahlenwert in mehrere Bytewerte zerlegt.
Integerzahlen werden in HiByte und LoByte zerlegt;
Long in HiWord(HiByte - LoByte) - LoWord(HiByte - LoByte)
Floatwert werden in 8 Byte in das IEEE Format gespeichert
dest[] | Referenz auf Byte-Puffer-Variable |
pos | Ausgabeposition im Puffer |
value | Zahlenwert |
Lesen von Zahlen aus einem Bytepuffer Nach oben
inline function getint(byte src[], int pos) returns int
inline function getlong(byte src[], int pos) returns long
inline function getfloat(byte src[], int pos) returns float
Mit diesen Funktion wird ein Zahlenwert aus mehreren Bytewerten
zusammengesetzt.
(Aufbau der Bytedaten siehe put*-Funktionen.)
Der Wert wird von der Funktion zurückgegeben.
src[] | Referenz auf Byte-Puffer-Variable |
pos | Ausgabeposition im Puffer |
Ermitteln von Array-Adressen im RAM Nach oben
function getMemAddrByte(byte data[]) returns int
function getMemAddrInt(byte data[]) returns int
function getMemAddrLong(byte data[]) returns int
Diese Funktion geben die Startadresse im RAM(Segment 8) der CC2 zurück
data[] | Referenz auf Puffervariable |
Autor: André Helbig Mail: andre.h@cc2net.de
Erstellt: 04.06.2004 ©www.CC2Net.de