Funktionen:
init()
num()
hex()
ziff()
sendziff()
put()
send()
getStatus()
Beschreibung Nach oben
Das Modul saa1064.c2 ist ein Treiber für den das I²C-Bus-IC
SAA1064
4digit 7-Segment LED-Treiber. (CCTools I2C-7Seg4)
Es können numerische Werte (Dezimal & Hexadezimal) ausgegeben werden.
Hierbei können je zwei LED-Anzeigen verknüpft werden, sodaß bis zu
8 Stellen ausgegeben werden können.
Einfügen als Systemmodul
Nach oben
Die Datei saa1064.c2 in das Verzeichnis .\CControl2\UserLib
der IDE
kopieren und in der Datei modules.txt die Zeile saa1064.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
Busadressen:
const Addr[]
=0x70,0x72,0x74,0x76;
Bausteinzuweisungen:
const
LEDcon1[] =0,1,2,3,0,2;
const
LEDcon2[] =0,0,0,0,1,3;
Dividenten für Dezimal- und Hexausgabe:
const
div10[] =0,1,10,100,1000,10000,100000,1000000,10000000;
const
div16[] =0,0x1,0x10,0x100,0x1000,0x10000,0x100000,0x1000000,0x10000000;
Hilfsarray für Punktausgabe:
const
pos[]=0,1,2,4,8,16,32,64,128;
Bitmuster für Zeichen:
const
digit[] =0b0111111/*0*/,0b0000110/*1*/,0b1011011/*2*/,0b1001111/*3*/,
0b1100110/*4*/,0b1101101/*5*/,0b1111101/*6*/,0b0000111/*7*/,
0b1111111/*8*/,0b1101111/*9*/,0b1110111/*A*/,0b1111100/*B*/,
0b0111001/*C*/,0b1011110/*D*/,0b1111001/*E*/,0b1110001/*F*/;
const dot =0b10000000;
const minus=0b1000000;
Funktionen:
Initalisieren Nach oben
function init(byte addr, byte cur, byte LEDcnt) returns int
Mit dieser Funktionen wird der SAA1064 initialisiert und die Parameter
definiert.
Alle Ausgänge werden dabei auf 0 gesetzt.
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0)
addr | Baustein 0-3 entsprechend Pegel an ADR |
cur | 3Bit-Bitmuster für Strombegrenzung:
(z.B:0b011 für 9mA) Bit0: 3mA Bit1: 6mA Bit2: 12mA |
LEDcnt | Anzahl 7-Segment Anzeigen: 0 - keine, Baustein wird als Portexpander verwendet 2 - Zwei 7-Segment-Anzeigen 4 - Vier 7-Segment-Anzeigen (CCTools I2C-7Seg4) |
Zahlenausgabe Nach oben
function num(byte addr, long value, byte Dots) returns int
function hex(byte addr, long value, byte Dots) returns int
Mit diesen Funktionen werden Zahlen (Dezimal bzw. Hexadezimal) bis zu 8stellig
über einen bzw. zwei SAA1064 ausgegeben, je nachdem, ob ein SAA1064 für
2 oder 4 7Segment-Anzeigen initialisiert wurde, und, ob zwei Anzeigen im Verbund
benutzt werden oder nicht. So sind 2, 4, 6 und 8stellige Ausgaben möglich.
Beim Verbundbetrieb werden über den ersten SAA1064 die höherwertigen
Stellen ausgegeben.
Über die Variable Dots kann ein Bitmuster angegeben werden, nach dem
die DezimalPunkte gesetzt werden.
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0)
addr | Baustein 0-3 entsprechend Pegel an ADR 4 = SAA1064 0 und 1 im Verbund 5 = SAA1064 2 und 3 im Verbund |
value | Ausgabewert: max. Bereich Dezimal: -9.999.999 bis 99.999.999 max. Bereich Hex: 0x0 bis 0xFFFFFFFF |
Dots | Bitmuster für Dezimalpunkte High Bit an Bit 0 bis Bit 7 entspricht Dezimalpunkt hinter Stelle1 bis Stelle8 |
Ziffernausgabe Nach oben
function ziff(byte addr, byte digit, byte value, int Dot) returns int
Mit dieser Funktion wird eine einzelne Ziffer ausgegeben
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0).
addr | Baustein 0-3 entsprechend Pegel an ADR |
Digit | 7Segment-Anzeige 0 bis 3 |
value | 0 bis 9 für Ziffern 0 bis 9 10 bis 15 für A bis F |
Dot | Wenn True (!=0) Anzeige des Dezimalpunktes hinter der Ziffer |
Ziffernausgabe
Array Nach oben
function sendziff(byte addr, byte value[], int Dot[]) returns int
Mit dieser Funktion werden bis zu vier Ziffern ausgegeben.
Die Übergabe erfolgt über Arrays.
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0).
addr | Baustein 0-3 entsprechend Pegel an ADR |
value[] | Array mit Ziffern werden 0 bis 9 für Ziffern 0 bis 9 10 bis 15 für A bis F |
Dot | Array mit Dezimalpunktdaten: Wenn True (!=0) Anzeige des Dezimalpunktes hinter der Ziffer |
Zeichenausgabe/Ports setzen Nach oben
function put(byte addr, byte Digit, byte value) returns int
Mit dieser Funktion wird ein Bitmuster für die angegebene Ziffer ausgegeben.
Bei Verwendung des SAA1064 als Porterweiterung werden die Ports
entsprechend nach dem Bitmuster gesetzt. (P1 bis 8=digit0, P9 bis 16=digit1)
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0).
addr | Baustein 0-3 entsprechend Pegel an ADR |
Digit | Ziffer / Byteport |
value | Bitmuster mit Portzuständen |
Zeichenausgabe/Ports
setzen Array Nach oben
function send(byte addr, byte value[]) returns int
Mit dieser Funktion wird die Bitmuster für bis zu vier Ziffern ausgegeben.
Die Übergabe erfolgt über ein Bytearray.
Bei Verwendung des SAA1064 als Porterweiterung werden die Ports
entsprechend nach dem Bitmuster gesetzt der ersten beiden Bytes gesetzt.
Die Funktion gibt True(-1) zurück, wenn sich an der angegebenen Adresse
ein Baustein befindet, andernfalls False(0).
addr | Baustein 0-3 entsprechend Pegel an ADR |
value[] | Bytearray mit Bitmustern der Portzuständen |
Statusbit
auslesen Nach oben
function getStatus(byte addr) returns int
Mit getStatus() wird das Statusbit des SAA1064 ausgelesen.
Mit Hilfe dieses Bits kann überprüft werde, ob die Spannung seit dem letztem
Ansprechen
eingebrochen war.
Die Funktion gibt False(0) zurück, wenn der Baustein wegen eines
Spannungseinbruchs
zurückgesetzt wurde, andernfalls True(-1).
addr | Baustein 0-7 entsprechend A0,A1,A2 |
state[] | Byte-Array mit DA-Werten 0 bis 255 Die Array-Elemente 0 bis 3 ensprechend den DA-Ports 0 bis 3 |
Autor: André Helbig Mail: andre.h@cc2net.de
Erstellt: 11.01.2004 ©www.CC2Net.de