Professional Documents
Culture Documents
8 Firmware Funktionen
8 Firmware Funktionen
0/V2_70/Li
Firmware-Funktionen
INHALT
FIRMWARE-FUNKTIONEN............................................................................................................ .............................................. 1
BESCHREIBUNGEN ............................................................................................................................................................................ 4
ee_enable() .................................................................................................................................................................................. 4
ee_disable() ................................................................................................................................................................................. 5
ee_short_wr()............................................................................................................................................................................... 6
ee_short_rd() ............................................................................................................................................................................... 7
ee_long_wr()................................................................................................................................................................................ 8
ee_long_rd() ................................................................................................................................................................................ 9
ee_float_wr() ............................................................................................................................................................................. 10
ee_float_rd() .............................................................................................................................................................................. 11
ee_short_wr2()........................................................................................................................................................................... 12
ee_short_rd2() ........................................................................................................................................................................... 13
ee_long_wr2()............................................................................................................................................................................ 14
ee_long_rd2() ............................................................................................................................................................................ 15
ee_float_wr2()............................................................................................................................................................................ 16
ee_float_rd2() ............................................................................................................................................................................ 17
save_domain() ........................................................................................................................................................................... 18
restore_domain() ....................................................................................................................................................................... 20
can_set() .................................................................................................................................................................................... 21
can_reset() ................................................................................................................................................................................. 23
can_set_distance() ..................................................................................................................................................................... 24
can_send_telegram() ................................................................................................................................................................. 25
can_user_telegram().................................................................................................................................................................. 27
can_req_confirmed() ................................................................................................................................................................. 28
can_req_unconfirmed() ............................................................................................................................................................. 29
can_get_receivequeue() ............................................................................................................................................................. 30
can_mpc2_receive_lock() .......................................................................................................................................................... 31
can_mpc2_get_error() ............................................................................................................................................................... 32
L7_Receive_Protocol1() ............................................................................................................................................................ 33
rs232_init() ................................................................................................................................................................................ 35
rs232_init2() .............................................................................................................................................................................. 36
rs232_in_rdy() ........................................................................................................................................................................... 37
rs232_in() .................................................................................................................................................................................. 38
rs232_out() ................................................................................................................................................................................ 39
rs232_str_out() .......................................................................................................................................................................... 40
setdatetime() .............................................................................................................................................................................. 41
getdatetime() .............................................................................................................................................................................. 43
lcd_init() .................................................................................................................................................................................... 44
lcd_reinit() ................................................................................................................................................................................. 45
lcd_clr() ..................................................................................................................................................................................... 46
lcd_refresh_anzeige() ................................................................................................................................................................ 47
lcd_mode_set()........................................................................................................................................................................... 48
lcd_setloc() ................................................................................................................................................................................ 49
lcd_set_cursor()......................................................................................................................................................................... 50
lcd_vdsp() .................................................................................................................................................................................. 51
lcd_vdsps()................................................................................................................................................................................. 52
lcd_vdspls()................................................................................................................................................................................ 53
lcd_vdspas()............................................................................................................................................................................... 54
lcd_vdsplas().............................................................................................................................................................................. 55
lcd_vdspd() ................................................................................................................................................................................ 56
lcd_vdspad() .............................................................................................................................................................................. 57
lcd_vdspld() ............................................................................................................................................................................... 58
lcd_vdsplad() ............................................................................................................................................................................. 59
lcd_vdspal() ............................................................................................................................................................................... 60
lcd_vdspll() ................................................................................................................................................................................ 61
lcd_vdsplal() .............................................................................................................................................................................. 62
lcd_vdspf() ................................................................................................................................................................................. 63
lcd_vdspaf() ............................................................................................................................................................................... 64
lcd_vdsplf() ................................................................................................................................................................................ 65
lcd_vdsplaf() .............................................................................................................................................................................. 66
lcd_draw_set_pos().................................................................................................................................................................... 67
lcd_point() ................................................................................................................................................................................. 68
lcd_draw_line().......................................................................................................................................................................... 69
lcd_draw_box().......................................................................................................................................................................... 70
lcd_block_set()........................................................................................................................................................................... 71
lcd_draw_pyramid() .................................................................................................................................................................. 72
lcd_draw_circle() ...................................................................................................................................................................... 73
lcd_draw_bitmap() .................................................................................................................................................................... 74
lcd_dsp_rom_char() .................................................................................................................................................................. 77
lcd_draw_font_char() ................................................................................................................................................................ 78
lcd_draw_font_str() ................................................................................................................................................................... 79
lcd_draw_zoom_char().............................................................................................................................................................. 81
lcd_draw_zoom_str()................................................................................................................................................................. 82
lcd_resolution_x()...................................................................................................................................................................... 83
lcd_resolution_y()...................................................................................................................................................................... 84
led_display() .............................................................................................................................................................................. 85
led_vdsp() .................................................................................................................................................................................. 86
led_vdsps()................................................................................................................................................................................. 87
led_vdspls()................................................................................................................................................................................ 88
led_vdspas()............................................................................................................................................................................... 89
led_vdspd() ................................................................................................................................................................................ 90
led_vdspad() .............................................................................................................................................................................. 91
led_vdspld() ............................................................................................................................................................................... 92
led_vdsplad() ............................................................................................................................................................................. 93
led_vdspl() ................................................................................................................................................................................. 94
led_vdspal() ............................................................................................................................................................................... 95
led_vdspll() ................................................................................................................................................................................ 96
led_vdsplal() .............................................................................................................................................................................. 97
led_vdspf() ................................................................................................................................................................................. 98
led_vdspaf() ............................................................................................................................................................................... 99
led_vdsplf() .............................................................................................................................................................................. 100
led_vdsplaf() ............................................................................................................................................................................ 101
led_vdsp_dp() .......................................................................................................................................................................... 102
ad_10bit() ................................................................................................................................................................................ 103
ad_12bit() ................................................................................................................................................................................ 104
dac_out().................................................................................................................................................................................. 105
kbbgd()..................................................................................................................................................................................... 106
kbrdy() ..................................................................................................................................................................................... 107
kblasttime() .............................................................................................................................................................................. 108
kbnec() ..................................................................................................................................................................................... 109
kbflush() ................................................................................................................................................................................... 110
kbsetkey() ................................................................................................................................................................................. 111
FieldSetKey() ........................................................................................................................................................................... 112
FieldTranslateKey()................................................................................................................................................................. 113
FieldSetActive() ....................................................................................................................................................................... 114
FieldProcessKey() ................................................................................................................................................................... 115
FieldProcessVirtualKey() ........................................................................................................................................................ 116
FieldStoreToEEPROM().......................................................................................................................................................... 117
FieldReadFromEEPROM() ..................................................................................................................................................... 118
FieldSetEEFunction() .............................................................................................................................................................. 119
feld_get_einheit()..................................................................................................................................................................... 120
feld_get_eingabe() ................................................................................................................................................................... 121
feld_get_nachkomma() ............................................................................................................................................................ 122
feld_get_typ()........................................................................................................................................................................... 123
Beschreibungen
ee_enable()
Beschreibung
Freigabe, damit auf dem EEPROM-Speicher geschrieben werden kann.
Ein Lesen aus dem EEPROM- Speicher ist jederzeit möglich.
Funktions-Definition
void ee_enable(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
short short_wr_wert = 0;
void ob1(void)
{
short_wr_wert++;
...
/* Schreiben des aktuellen short-Schreibe-Wertes an der Adresse 4 im EEPROM */
ee_enable();
ee_short_wr(4,short_wr_wert);
ee_disable();
/* Ausgabe des short-Schreibe-Wertes */
sprintf(buffer,"short-Schreibe-Wert: %i",short_wr_wert);
lcd_vdspls(2,0,buffer);
/* Lesen der Adresse 4 im EEPROM */
short_rd_wert = ee_short_rd(4);
...
}
Hinweis
Wird ein „ee_?????_wr()“ Funktion aufgerufen, bevor ein ee_enable() ausgeführt wurde, verharrt die
Steuerung an dieser Programmstelle.
Verwandte Funktionen
ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_disable()
Beschreibung
Sperren jeglichen Schreibzugriffes auf den EEPROM-Speicher. Falls trotzdem ein Schreibzugriff erfolgt, würde
sich die Steuerung an dieser Stelle festfahren und ggf. durch einen Watchdog-Reset neu starten.
Funktions-Definition
void ee_disable(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
short short_wr_wert = 0;
void ob1(void)
{
short_wr_wert++;
...
/* Schreiben des aktuellen short-Schreibe-Wertes an der Adresse 4 im EEPROM */
ee_enable();
ee_short_wr(4,short_wr_wert);
ee_disable();
/* Ausgabe des short-Schreibe-Wertes */
sprintf(buffer,"short-Schreibe-Wert: %i",short_wr_wert);
lcd_vdspls(2,0,buffer);
/* Lesen der Adresse 4 im EEPROM */
short_rd_wert = ee_short_rd(4);
...
}
Hinweis
Verwandte Funktionen
ee_enable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_short_wr()
Beschreibung
Schreiben eines “short”-Wertes (2 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...255 variieren.
Funktions-Definition
void ee_short_wr(void)
Rückgabewert
void
Übergabewerte
uchar adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFF:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)
short daten
Die Daten entsprechen einer vorzeichenbehafteten 16-Bit-Zahl.
Beispiel
short short_wr_wert = 0x1234;
void ob1(void)
{
ee_enable();
ee_short_wr(4,short_wr_wert);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Verwandte Funktionen
ee_enable, ee_disable, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_short_rd()
Beschreibung
Lesen eines “short”-Wertes (2 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...255 variieren.
Funktions-Definition
short ee_short_rd(unsigned char adresse)
Rückgabewert
short
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFF)
Beispiel
short short_rd_wert;
void ob1(void)
{
...
short_rd_wert = ee_short_rd(4);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_long_wr()
Beschreibung
Schreiben eines “long”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.
Funktions-Definition
void ee_long_wr(unsigned char adresse, long daten)
Rückgabewert
void
Übergabewerte
unsigned char adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)
long daten
Die Daten entsprechen einer vorzeichenbehafteten 32-Bit-Zahl.
Beispiel
long long_wr_wert = 0x12345678L;
void ob1(void)
{
ee_enable();
ee_long_wr(16,long_wr_wert);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus „adresse“ und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_float_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_long_rd()
Beschreibung
Lesen eines “long”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.
Funktions-Definition
long ee_long_rd(unsigned char adresse)
Rückgabewert
long
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFE)
Beispiel
long long_rd_wert;
void ob1(void)
{
...
long_rd_wert = ee_long_rd(0x50);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus „adresse“
und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_float_wr()
Beschreibung
Schreiben eines “float”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.
Funktions-Definition
void ee_float_wr(unsigned char adresse, float daten)
Rückgabewert
void
Übergabewerte
unsigned char adresse
0x00 ... 0x4F:
CPU515, CPU960:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
CPU167:
Adressen stehen zur freien Verfügung
0x50 ... 0xDF:
Adressen stehen zur freien Verfügung
0xE0 ... 0xFE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden ! (CPU167: kein Schreiben auf diesen Bereich möglich)
float daten
Die Daten entsprechen einer vorzeichenbehafteten Fließkomma-Zahl.
Beispiel
float float_wr_wert = 17,456F;
void ob1(void)
{
ee_enable();
ee_float_wr(24,float_wr_wert);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus „adresse“ und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_short_wr2, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_float_rd()
Beschreibung
Lesen eines “float”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “adresse” im Wertebereich von 0...254 variieren.
Funktions-Definition
float ee_float_rd(unsigned char adresse)
Rückgabewert
float
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
unsigned char adresse
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x00..0xFE)
Beispiel
long long_rd_wert;
void ob1(void)
{
...
long_rd_wert = ee_long_rd(0x50);
...
}
Æ ...\Projekte\DemoSim\P200_EE\ElaSim\ob.c
Hinweis
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus „adresse“
und „adresse+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_short_wr2()
Beschreibung
Schreiben eines “short”-Wertes (2 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1023 variieren.
Funktions-Definition
void ee_short_wr2(USIGN16 address, short wert)
Rückgabewert
void
Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FF:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).
short wert
Die Daten entsprechen einer vorzeichenbehafteten 16-Bit-Zahl.
Beispiel
short short_wr_wert = 0x1357;
short short_rd_wert;
void ob1(void)
{
ee_enable();
ee_short_wr2(0x31A,short_wr_wert);
short_rd_wert = ee_short_rd(0x1A); /* es wird 0x1357 zurueckgelesen */
...
}
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFF .
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_long_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_short_rd2()
Beschreibung
Lesen eines “short”-Wertes (2 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1023 variieren.
Funktions-Definition
short ee_short_rd2(USIGN16 address)
Rückgabewert
short
Inhalt der mit Adresse definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FF)
Beispiel
short short_rd_wert1;
short short_rd_wert2;
void ob1(void)
{
...
short_rd_wert1 = ee_short_rd2(0x330);
short_rd_wert2 = ee_short_rd(0x30); /* short_rd_wert1 und short_rd_wert2 haben */
/* identischen Inhalt */
...
}
Hinweis
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFF .
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_long_rd2, ee_float_rd2
ee_long_wr2()
Beschreibung
Schreiben eines “long”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.
Funktions-Definition
void ee_long_wr2(USIGN16 address, long wert)
Rückgabewert
void
Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).
long wert
Die Daten entsprechen einer vorzeichenbehafteten 32-Bit-Zahl.
Beispiel
long long_wr_wert = 1365777L;
void ob1(void)
{
ee_enable();
ee_long_wr2(0x2F0,long_wr_wert);
ee_long_wr2(0x2F2,long_wr_wert + 10L);
...
}
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus “address“ und “address+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Mit den Adressen 0x300 ... 0x3FF werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_float_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_long_rd2()
Beschreibung
Lesen eines “long”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.
Funktions-Definition
long ee_long_rd2(USIGN16 address)
Rückgabewert
long
Inhalt der mit “adress“ definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FE)
Beispiel
long long_rd_wert;
void ob1(void)
{
...
long_rd_wert = ee_long_rd2(0x150);
...
}
Hinweis
Es muß darauf geachtet werden, daß jeder Long-Wert den Adressbereich von 2 Short-Werten belegt, so daß auf den Inhalt aus “address“
und “address+1“ zugegriffen wird. Soll z.B auf 2 Long-Werte nacheinander zugegriffen werden, muß somit die Adresse um 2 erhoeht
werden.
Mit den Adressen 0x300 ... 0x3FE werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den Funktionen ee_short_wr,
ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_float_rd2
ee_float_wr2()
Beschreibung
Schreiben eines “float”-Wertes (4 Byte) in das EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.
Funktions-Definition
void ee_float_wr2(USIGN16 address, float wert)
Rückgabewert
void
Übergabewerte
USIGN16 address
0x00 ... 0x1FF:
Bei CAN-Modulen werden diese Adressen normalerweise innerhalb der Firmware zur Speicherung der Abgleichwerte für die
Eichung der Module benutzt. Werden keine analogen Eingänge im Modul verwandt, kann dieser Bereich ebenfalls zur Speicherung
von sonstigen Werten benutzt werden (führt dann aber zum Verlust der Eichwerte).
Bei Verwendung der analogen Eingänge darf dieser Speicherbereich nicht angesprochen werden
0x200 ... 0x3DF:
Adressen stehen zur freien Verfügung
0x3E0 ... 0x3FE:
Diese Adressen werden innerhalb der Firmware zur Speicherung der Moduladresse, Baudrate, etc. benutzt. Dieser Bereich darf niemals
überschrieben werden (ein Schreibzugriff auf diesen Bereich wird ignoriert).
float wert
Die Daten entsprechen einer vorzeichenbehafteten Fließkomma-Zahl.
Beispiel
float float_wr_wert = 3.1415927L;
void ob1(void)
{
ee_enable();
ee_float_wr2(0x300,float_wr_wert);
...
}
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2, ee_float_rd2
ee_float_rd2()
Beschreibung
Lesen eines “float”-Wertes (4 Byte) aus dem EEPROM.
Dabei kann die Variable “address” im Wertebereich von 0...1022 variieren.
Funktions-Definition
float ee_float_rd2(USIGN16 address)
Rückgabewert
float
Inhalt der mit “adress“ definierten Speicherstelle innerhalb des EEPROM
Übergabewerte
USIGN16 address
Speicherstelle innerhalb des EEPROM aus der gelesen wird (0x000..0x3FE)
Beispiel
float float_rd_wert;
void ob1(void)
{
...
float_rd_wert = ee_float_rd2(0x300);
if (float_rd_wert == 3.1415927F
{
...
}
...
}
Hinweis
Es muß zwingend vorher die „ee_enable()“ Funktion aufgerufen worden sein.
Es muß darauf geachtet werden, daß jeder Float-Wert den Adressbereich von 2 Short-Werten belegt, so daß
auf den Inhalt aus “address“ und “address+1“ zugegriffen wird. Soll z.B auf 2 Float-Werte nacheinander
zugegriffen werden, muß somit die Adresse um 2 erhoeht werden.
Mit den Adressen 0x300 ... 0x3FE werden die physikalisch gleichen Speicherstellen angesprochen, wie bei den
Funktionen ee_short_wr, ee_short_rd, ee_long_wr, ... mit Hilfe der Adressen 0x00 ... 0xFE .
Verwandte Funktionen
ee_enable, ee_disable, ee_short_wr, ee_long_wr, ee_float_wr, ee_short_wr2, ee_long_wr2,
ee_float_wr2, ee_short_rd, ee_long_rd, ee_float_rd, ee_short_rd2, ee_long_rd2
save_domain()
Beschreibung
Ermöglicht das Speichern eines Speicherbereiches im FlashEEPROM (nichtflüchtiger Speicher)
Funktions-Definition
int save_domain(int _HUGE* buffer, int size, int _HUGE* dest)
Rückgabewert
int
TRUE falls Funktion erfolgreich ausgeführt werden konnte;
FALSE falls Funktion nicht erfolgreich ausgeführt werden konnte, weil
- Zugriff auf nicht vorhandene Speicher bereiche (Adressen),
- das Löschen des Sektors war nicht möglich,
- Schreiben nicht möglich.
Übergabewerte
USIGN8 _HUGE* buffer
Zeiger auf den Beginn des Speicherbereichs, der im FlashEEPROM gespeichert werden soll.
int size
Anzahl der Zeichen, die abgespeichert werden sollen. Ist “size“ gleich 0, so wird der Sektor des FlashEEPROM, in dem sich die Adresse
“dest“ befindet gelöscht.
Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L
void ob1(void)
{
...
if (sema_save_parametersatz == TRUE)
{
if(save_domain(ptrParaBuf, 0, (USIGN8 _HUGE*)SAVESEG) ) /* Segment ab 0x 080000
{ wird gelöscht */
save_domain(ptrParaBuf, 512, (USIGN8 _HUGE*)SAVESEG); /* Parameter abspeichern,
} falls loeschen ok */
else { / Fehlerbehandlung */ ... }
}
...
}
Hinweis
Vor dem Abspeichern in einen Sektor des FlashEEPROM muß dieser gelöscht werden.
Verwandte Funktionen
restore_domain
restore_domain()
Beschreibung
Ermöglicht das Auslesen eines FlashEEPROM (nichtflüchtiger Speicher) in einen Speicherbereiches
Funktions-Definition
int restore_domain(void _HUGE* buffer, void _HUGE* src , int size)
Rückgabewert
int
TRUE falls Funktion erfolgreich ausgeführt werden konnte;
FALSE falls Funktion nicht erfolgreich ausgeführt werden konnte, weil
- Zugriff auf nicht vorhandene Speicher bereiche (Adressen),
- das Löschen des Sektors war nicht möglich,
- Schreiben nicht möglich.
Übergabewerte
USIGN8 _HUGE* buffer
Zeiger auf den Beginn des Speicherbereichs, aus dem vom FlashEEPROM rückgespeichert werden soll.
int size
Anzahl der Zeichen, die rückgespeichert werden sollen.
USIGN8 _HUGE* src
Zeiger auf den Beginn des Speicherbereichs, aus dem rückgespeichert werden soll.
Bereiche:
CPU167:
0x10000 ... 0xFFFFF, wobei standardmäßig der Bereich bis 0x8FFFF für die USERWARE verwendet wird
CPU960:
0x10000 ... 0x7FFFF, wobei standardmäßig der Bereich bis 0x3FFFF für die USERWARE verwendet wird
Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L
void ob1(void)
{
...
if (sema_restore_parametersatz == TRUE)
{
if( !restore_domain(ptrParaBuf, (USIGN8 _HUGE*)SAVESEG), 512 )
{
/* error handling */
}
}
...
}
Hinweis
Verwandte Funktionen
save_domain
can_set()
Beschreibung
Mittels dieser Funktion werden in der FIRMWARE diverse interne Zustände gesetzt.
In der Include Datei „can.h“, welche aus „ob.h“ gerufen wird sind folgende Defines vorgegeben :
Funktions-Definition
short can_set(char modus, short wert)
Rückgabewert
short
Abhängig vom oben beschriebenen Modus.
Übergabewerte
char modus
Eines der oben beschriebenen Defines.
short wert
Abhängig vom oben beschriebenen Modus.
Beispiel
USIGN8 ParaBuf[512];
USIGN8 _HUGE* ptrParaBuf;
#define SAVESEG 0x080000L
Hinweis
Diverse Funktionalitäten aus der FIRMWARE können mit der exakt gleichen wirkungsweise mittels
FIRMWARE Variablen erreicht werden. Zum Beispiel die CAN Baudrate kann wahleweise mittels can_set()
oder dem Firmware Datenpunkt „CAN Baudrate“ vorgewählt werden.
Verwandte Funktionen
Zugriff auf FIRMWARE Datenpunkte via der Funktion “can_send_telegram()”.
can_reset()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde eine neue Funktion zum Reset des CAN Bausteines eingeführt.
Funktions-Definition
USIGN8 can_reset(USIGN8 card, USIGN16 io_address, USIGN16 baudrate,
USIGN8 standard_id)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN16 io_address
Ist nur wegen Kompatibilität zur PC Funktion eingeführt.
USIGN16 baudrate
Vorgabe der CAN Baudrate von 10...1000 entspricht 10Kbaud ... 1MBaud
USIGN16 standard_id
Ist nur wegen Kompatibilität zur PC Funktion eingeführt.
Beispiel
Hinweis
Verwandte Funktionen
can_set
can_set_distance()
Beschreibung
Damit ein Modul bei diversen Operationen den CAN Bus nicht ausschließlich für sich blockiert, wurde diese
Funktion ab FIRMWARE 1.30 ergänzt. Hiermit kann in vielfachen von 1ms der Abstand zwischen 2 CAN
Telegrammen eingestellt werden. Der Abstand ist sowohl bei Sendeanforderungen als auch bei
Antworttelegrammen wirksam. Ein zu groß vorgewählten Wert wie 100ms führt zu Beeinträchtigung anderer
Bus Teilnehmer, die ggf. Mehrfachanfragen an das Modul stellen, da dieses zu spät seine Antworttelegramme
absendet.
Funktions-Definition
void can_set_distance(USIGN8 card, USIGN8 can_distance)
Rückgabewert
void
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN8 can_distance
Setz in [1ms] den Abstand zwischen zwei CAN Telegramme.
Beispiel
Hinweis
Verwandte Funktionen
can_send_telegram()
Beschreibung
Diese ab FIRMWARE 1.00 existierende Funktion hat eine Doppelfunktionalität.
Zum einen dient Sie zur Kommunikation mit der eigenen FIRMWARE Struktur, falls das Argument „modul“ der
eigenen Modul Knotennummer entspricht, siehe dazu die Funktionsbeschreibung von „L7_Receive_Protocol1()“.
Zum anderen dient Sie zur einfachen CAN Kommunikation mit anderen CAN Knoten auf Basis von Elrest
Protokoll 1.0.
Folgender schematischer Programmauszug aus der FIRMWARE soll den Zusammenhang darstellen :
Funktions-Definition
char can_send telegram(char modul, can_telegramm _HUGE* daten)
Rückgabewert
char
Übergabewerte
char modul
Entspricht der logischen Knotennummer 0...63 für das Elrest Protokoll 1.0.
can_telegram _HUGE* daten
Entspricht exakt den 6 Bytes zu übertragenden CAN Daten.
Beispiel
Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.
Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_user_telegram, L7_Receive_Protocol1
can_user_telegram()
Beschreibung
Diese ab FIRMWARE 1.24 existierende Funktion dient dazu kundenspezifische Telegramme versenden zu
können.
Funktions-Definition
void can_user_telegram( long send_id, long, recv_id, char len,
char _HUGE* dat)
Rückgabewert
void
Übergabewerte
long send_id
Sende CAN 2.0A Identifier im Wertebereich von 1...2031.
long recv_id
Empfangs CAN 2.0A Identifier im Wertebereich von 1...2031 als Antwort auf die Anfrage.
char len
Länge des CAN Telegrammes von 0...8 Bytes.
char _HUGE* dat
Zeiger auf die zu sendente Daten.
Falls ein Antworttelegramm empfangen wird dieser Datenspeicher mit der
Antwort überschrieben.
Beispiel
Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.
Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_req_confirmed, can_send_telegram
can_req_confirmed()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde als Nachfolger der Funktion „can_user_telegram” diese Funktion realisiert.
Funktions-Definition
USIGN8 can_req_confirmed( USIGN8 card, USIGN32 arg_send_id,
USIGN32 arg_recv_id, USIGN8 length,
USIGN8 _HUGE* dat)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_send_id
Sende CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN32 arg_recv_id
Empfangs CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 length
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 _HUGE* dat
Beispiel
Hinweis
Diese Funktion kann nicht im Zusammenhang mit den Elrest Bibliotheken Zonline.lib verwendet werden.
In dieser Bibliothek werden durch die Funktion „can_req_unconfirmed()“ blockweise mehrere CAN
Anforderungen versendet. Diese werden mit der Funktion „can_get_receivequeue()“ blockweise wieder
ausgewertet.
Würde nunmehr dazwischen die Funktion „can_send_telegram()“ aufgerufen werden, so könnten in der darin
programmierten while() Schleife CAN Antworttelegramm von anderen Anfragen unausgewertet bleiben.
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_user_telegram, can_send_telegram
can_req_unconfirmed()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient als Basisfunktion zum Versenden von CAN
Telegrammen. Diese Funktion trägt die Sendeanforderung in einen Senderingspeicher ein, der mittels eines
hochprioren Timer Interrupt alle 750µs abgearbeitet wird.
Funktions-Definition
USIGN8 can_req_unconfirmed( USIGN8 card, USIGN32 arg_send_id,
USIGN8 length, USIGN8 _HUGE* dat)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_send_id
Zu sendende CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 length
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 _HUGE* dat
Zeiger auf die zu sendende Daten.
Beispiel
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Hinweis
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_confirmed, can_get_receivequeue, can_user_telegram, can_send_telegram
can_get_receivequeue()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient als Basisfunktion zum Empfang von CAN
Telegrammen. Diese Funktion liest einen Empfangsringspeicher aus, der mittels eines hochprioren CAN
Interrupt alle CAN Telegramme am CAN Bus empfängt in diesen Empfangsringspeicher einträgt.
Funktions-Definition
USIGN8 can_get_receivequeue( USIGN8 card, USIGN32 _HUGE* arg_recv_id,
USIGN16 _HUGE* systemtick,
USIGN8 _HUGE* len, USIGN8 HUGE* recv_dat)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 _HUGE* arg_recv_id
Empfangene CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN16 _HUGE* systemtick
Zeitstempel zu jeden empfangenen CAN Telegramm in einer Auflösung von [10ms].
USIGN8 HUGE* len
Länge des CAN Telegrammes von 0...8 Bytes
USIGN8 HUGE* recv_dat
Zeiger auf die empfangenen Daten.
Beispiel
Hinweis
Bitte beachten Sie die Richtlinien zu CAN 2.0A und CAN 2.0B Netzwerken aus der Kapitel „Kommunikation“.
Verwandte Funktionen
can_req_confirmed, can_req_unconfirmed, can_user_telegram, can_send_telegram
can_mpc2_receive_lock()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient zum Sperren von diversen CAN Identifieren.
Funktions-Definition
USIGN8 can_mpc2_receive_lock(USIGN8 card, USIGN32 arg_id, USIGN8 lock)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 arg_id
CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 lock
Mit TRUE und FALSE kann gesperrt werden oder diese wieder aufgehoben werden.
Beispiel
Hinweis
Diese Funktion ist momentan nicht wirksam, dies wird erst ab einer der nächsten FIRMWARE Funktionsstände
unterstützt.
Verwandte Funktionen
can_mpc2_get_error()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Aus diesem Grund wurde diese Funktion realisiert und dient zum Auslesen innerer Fehlerzustände des CAN
Bausteines.
Funktions-Definition
USIGN8 can_mpc2_get_error( USIGN8 card, USIGN32 _HUGE* arg_id,
USIGN8 _HUGE* mac)
Rückgabewert
USIGN8
Übergabewerte
USIGN8 card
Auswahl eines der CAN Bausteine auf der CAN Modul.
USIGN32 _HUGE* arg_id
CAN 2.0A Identifier im Wertebereich von 1...2031 oder
CAN 2.0B Identifier im Wertebereich von 1...229 (536.870.911).
USIGN8 _HUGE* mac
Beispiel
Hinweis
Verwandte Funktionen
L7_Receive_Protocol1()
Beschreibung
Ab FIRMWARE V1.30 ist die Unterstützung von mehreren CAN Knoten pro CAN Modul angedacht.
Mit der Funktion „canset(CONNECT_CAN_RESPONSE, 0);” kann die FIRMWARE Funktionalität deaktiviert
werden.
Falls Sie die FIRMWARE Funktionalität deaktiviert haben und innerhalb der USERWARE mit der Funktion
„can_get_receivequeue()“ alle empfangene CAN Telegramme auswerten, können Sie mit der Funktion
„L7_Receive_Protocol1“ kontrolliert die Funktionalität der FIRMWARE nachbilden.
Folgender schematischer Programmauszug aus der FIRMWARE soll den Zusammenhang darstellen :
Funktions-Definition
USIGN8 L7_Receive_Protocol1(USIGN32 nClientNo, USIGN8 _HUGE pDat)
Rückgabewert
USIGN8
Übergabewerte
USIGN32 nClientNo
USIGN8 _HUGE* pDat
Beispiel
void ob1(void)
{
USIGN32 recv_id;
USIGN16 systemtick;
USIGN8 len;
USIGN8 recv_dat[8];
...
while ( can_get_receivequeue(card, &recv_id, &systemtick, &len, recv_dat) )
{
/* my receive id must be calculated respect of protocol 1.0 or 2.0 etc. */
if ( recv_id == my_recv_id )
{
L7_Receive_Protocol1(my_adr, recv_dat);
}
}
...
}
Hinweis
Verwandte Funktionen
can_req_unconfirmed, can_get_receivequeue, can_send_telegram, can_user_telegram
rs232_init()
Beschreibung
Dient zum Initialisieren der RS232 Schnitstelle und Vorgabe des Betriebsmodus. Abhängig von dem
Übergabeargument „mode“ kann zwischen diversen Modi unterschieden werden.
Funktions-Definition
void rs232_init(char mode)
Rückgabewert
void
Übergabewerte
char mode
Folgenden Modi können unterschieden werden :
•„mode“ == 0
Die empfangenen Zeichen über die RS232 Schnittstelle werden über eine
Empfangsinterruptroutine direkt in einen 256 Zeichen große Empfangsringspeicher
eingetragen. Dieser Empfangsringspeicher kann mittels der Funktion „rs232_in()“
zeichenweise ausgelesen werden. Bevor dieser Empfangsringspeicher ausgelesen wird, muß
mittels der Funktion „rs232_in_rdy()“ geprüft werden, ob ein Zeichen im
Empfangsringspeicher vorhanden ist. Ansonsten wird in der Funktion „rs232_in()“ solange
verharrt, bis ein Zeichen von der Schnittstelle empfangen wurde.
•„mode“ == 1
Jedes empfangene Zeichen über die RS232 Schnittstelle führt zum direkten Aufruf der
Funktion „rs232_interrupt ()“ aus der Interruptroutine. Somit könnte ich Echtzeit gewollte
Synchronisierungen durchgeführt werden. Es ist zu beachten, daß nur reentrant Funktionen
aus einer Interruptroutine aufgerufen werden dürfen und das diese Betriebsart eine
zusätzliche CPU Belastung darstellt.
•„mode“ == 128
Der Empfang eines Zeichen wird direkt in die FIRMWARE umgeleitet. Somit stehen die
Funktionalität der FIRMWARE Dienste wie Download, etc. zu Verfügung.
Die FIRMWARE wird in diese Betriebsart initialisiert.
Beispiel
Hinweis
Verwandte Funktionen
rs232_init2()
rs232_init2()
Beschreibung
Entspricht exakt der Funktion „rs232_init()“, es wurde lediglich das zusätzliche Übergabeargument Baudrate
eingeführt.
Funktions-Definition
void rs232_init2(char mode, USIGN16 rs232_baudrate)
Rückgabewert
void
Übergabewerte
char mode
Folgenden Modi können unterschieden werden :
•„mode“ == 0
Die empfangenen Zeichen über die RS232 Schnittstelle werden über eine
Empfangsinterruptroutine direkt in einen 256 Zeichen große Empfangsringspeicher
eingetragen. Dieser Empfangsringspeicher kann mittels der Funktion „rs232_in()“
zeichenweise ausgelesen werden. Bevor dieser Empfangsringspeicher ausgelesen wird, muß
mittels der Funktion „rs232_in_rdy()“ geprüft werden, ob ein Zeichen im
Empfangsringspeicher vorhanden ist. Ansonsten wird in der Funktion „rs232_in()“ solange
verharrt, bis ein Zeichen von der Schnittstelle empfangen wurde.
•„mode“ == 1
Jedes empfangene Zeichen über die RS232 Schnittstelle führt zum direkten Aufruf der
Funktion „rs232_interrupt ()“ aus der Interruptroutine. Somit könnte ich Echtzeit gewollte
Synchronisierungen durchgeführt werden. Es ist zu beachten, daß nur reentrant Funktionen
aus einer Interruptroutine aufgerufen werden dürfen und das diese Betriebsart eine
zusätzliche CPU Belastung darstellt.
„mode“ == 128
Der Empfang eines Zeichen wird direkt in die FIRMWARE umgeleitet. Somit stehen die
Funktionalität der FIRMWARE Dienste wie Download, etc. zu Verfügung.
Die FIRMWARE wird in diese Betriebsart initialisiert.
USIGN16 rs232_baudrate
Es kann zwischen 9600 und 38400 gewechselt werden.
Beispiel
void ob22 (void)
{
/* received character to the receive queue from 256 elements and set to 38400 baud */
rs232_init2(0, 38400);
}
Hinweis
Verwandte Funktionen
rs232_init()
rs232_in_rdy()
Beschreibung
Dient zum Erkennen von empfangenen Zeichen in dem RS232 Empfangsringspeicher.
Funktions-Definition
bit rs232_in_rdy(void)
char
Rückgabewert
bit
bei CPU515
char
bei CPU167 / CPU960
Wird TRUE zurückgegeben, so sind ein oder mehrere Zeichen im Empfangsspeicher vorhanden.
Übergabewerte
void
Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
}
...
}
Hinweis
Verwandte Funktionen
rs232_in()
rs232_in()
Beschreibung
Dient zum Auslesen von empfangenen Zeichen aus dem RS232 Empfangsringspeicher. Wird diese Funktion
aufgerufen und es sind keine Zeichen in dem Empfangsringspeicher vorhanden, so wird in der Funktion solange
verharrt, bis das nächste Zeichen empfangen wurde.
Funktions-Definition
char rs232_in(void)
Rückgabewert
char
Das empfangene 8-bit ASCII Zeichen.
Übergabewerte
void
Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
}
...
}
Hinweis
Verwandte Funktionen
rs232_in_rdy()
rs232_out()
Beschreibung
Dient zum Versenden eines Zeichen auf der RS232 Schnittstelle.
Funktions-Definition
void rs232_out(char c)
Rückgabewert
void
Übergabewerte
char c
Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
if ( c == ETX )
{
rs232_out(ACK);
}
}
...
}
Hinweis
Werden Zeichen schneller versendet, als es der Senderingspeicher tatsächlich abarbeiten kann so werden diese
Zeichen verworfen.
Verwandte Funktionen
rs232_str_out()
rs232_str_out()
Beschreibung
Dient zum Versenden einer mit dem Nullzeichen abgeschlossene Zeichenkette auf der RS232 Schnittstelle.
Funktions-Definition
void rs232_str_out(char _HUGE* str)
Rückgabewert
void
Übergabewerte
char _HUGE* str
Beispiel
void ob1(void)
{
...
while ( rs232_in_rdy() )
{
char c = rs232_in();
/* process the characters */
if ( c == ETX )
{
rs232_str_out(“this is a string”);
}
}
...
}
Hinweis
Werden Zeichen schneller versendet, als es der Senderingspeicher tatsächlich abarbeiten kann so werden diese
Zeichen verworfen.
Verwandte Funktionen
rs232_out()
setdatetime()
Beschreibung
Hiermit können alle Werte der Echtzeituhr gesetzt werden.
Die Echtzeituhr ist in aller Regel mittels einer Batterie gepuffert. Ist die Batterieladung erschöpft, läuft die
Uhr lediglich unter Betriebsspannung.
Funktions-Definition
void setdatetime(char modus, char wert)
Rückgabewert
void
Übergabewerte
char modus
#define GETDATETIME_STUNDE 0 Wertebereich : 0...23
#define GETDATETIME_MINUTE 1 Wertebereich : 0...59
#define GETDATETIME_SEKUNDE 2 Wertebereich : 0...59
#define GETDATETIME_TAG 3 Wertebereich : 1...31
#define GETDATETIME_MONAT 4 Wertebereich : 1...12
#define GETDATETIME_JAHR 5 Wertebereich : 90...127 entspricht 1990...2027
char wert
Beispiel
Æ ...\Projekte\DemoSim\P200_CNT\ElaSim\ob.c
. . .
short short_wr_wert = 0, short_rd_wert;
long long_wr_wert = 0L, long_rd_wert;
float float_wr_wert = 0.0F, float_rd_wert;
. . .
if (beispiel_nr == 1)
{
sprintf(buffer," Beispiel %i: Echtzeituhr ", beispiel_nr);
lcd_vdspls(2,0,buffer);
/* Abfragen der Echtzeituhr */
set_tag = getdatetime(GETDATETIME_TAG);
set_monat = getdatetime(GETDATETIME_MONAT);
set_jahr = getdatetime(GETDATETIME_JAHR);
if(set_jahr > 80)
set_jahr += 1900;
else
set_jahr += 2000;
set_stunde = getdatetime(GETDATETIME_STUNDE);
set_minute = getdatetime(GETDATETIME_MINUTE);
set_sekunde = getdatetime(GETDATETIME_SEKUNDE);
l cd_vdspls(4,1,"Datum:");
lcd_vdspld(4,8 ,-2, set_tag);
lcd_vdsps ( ".");
lcd_vdspd ( -2, set_monat);
lcd_vdsps ( ".");
lcd_vdspd ( -2, set_jahr);
lcd_vdspls(4,21,"Uhrzeit:");
lcd_vdspld(4,30,-2, set_stunde);
lcd_vdsps ( ":");
lcd_vdspd ( -2, set_minute);
lcd_vdsps ( ":");
lcd_vdspd ( -2, set_sekunde);
}
Hinweis
Verwandte Funktionen
getdatetime()
getdatetime()
Beschreibung
Hiermit können alle Werte der Echtzeituhr abgefragt werden :
Funktions-Definition
char getdatetime(char modus)
Rückgabewert
char
Übergabewerte
char modus
#define GETDATETIME_STUNDE 0 Wertebereich : 0...23
#define GETDATETIME_MINUTE 1 Wertebereich : 0...59
#define GETDATETIME_SEKUNDE 2 Wertebereich : 0...59
#define GETDATETIME_TAG 3 Wertebereich : 1...31
#define GETDATETIME_MONAT 4 Wertebereich : 1...12
#define GETDATETIME_JAHR 5 Wertebereich : 90...127 entspricht 1990...2027
Beispiel
Hinweis
Verwandte Funktionen
setdatetime()
lcd_init()
Beschreibung
Dient zum low level initialisieren des LCD controllers. Bei einem low level werden alle interne Register des
LCD Controllers zurückgesetzt. Dies äußert sich durch ein Flacken am LCD Bildschirm.
Funktions-Definition
void lcd_init(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
lcd_reinit()
lcd_reinit()
Beschreibung
Reinitialisieren des LCD-Controllers.
Dies ist auf dem LCD Bildschirm nicht zu erkennen wie dies bei der Funktion „lcd_init()“ der Fall ist.
Funktions-Definition
void lcd_reinit(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
In stark EMV beeinträchtigter Industrieumgebung wird empfohlen, diese Funktion zyklisch aufzurufen.
Dies dient dazu, daß keine unerwünschte Pixel auf dem LCD Bildschirm stehen bleiben.
Verwandte Funktionen
lcd_init()
lcd_clr()
Beschreibung
Löschen des gesamten LCD-Bildschirminhaltes.
Funktions-Definition
void lcd_clr(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
lcd_refresh_anzeige()
Beschreibung
Diese Funktion wird ab FIRMWARE 1.00 nicht mehr unterstützt.
Funktions-Definition
void lcd_refresh_anzeige(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
lcd_mode_set()
Beschreibung
Wechseln vom Text- (draw_mode = M_TEXT) in den Grafik-Modus (draw_mode = M_GRAFIK) und zurück.
In der Grundeinstellung befindet sich das Modul im Text-Modus. Um die im Anschluß beschriebenen LCD-
Ausgabe-Funktionen nutzen zu können, muß in den Grafik-Modus gewechselt werden; um das Attribut
LCD_BLINK nutzen zu können, muß zuvor der Text-Modus aktiviert sein..
Funktions-Definition
void lcd_mode_set(char draw_mode)
Rückgabewert
void
Übergabewerte
char draw_mode
M_OR Logische "OR" Operation zweier Pixel
M_XOR Logische "EXOR" Operation zweier Pixel
M_COPY Logische "AND" Operation zweier Pixel
M_GRAFIK Umschalten in den Graphikmodus
M_TEXT Umschalten in den Textmodus
Beispiel
void ob22 (void)
{
...
lcd_mode(M_GRAFIK | M_XOR);
...
}
Hinweis
Einen Wechsel zwischen Text- und Graphikmode wird nicht empfohlen. Die Simulation mittels ElaSim erfolgt
ausschließlich im Graphikmode.
Verwandte Funktionen
lcd_setloc()
Beschreibung
Positionieren der aktuellen Cursor-Position im Textmodus.
Funktions-Definition
void lcd_setloc(char row, char col)
Rückgabewert
void
Übergabewerte
char row
Die aktuelle Zeile bei 0 beginned.
char col
Die aktuelle Spalte bei 0 beginned.
Beispiel
Hinweis
Verwandte Funktionen
lcd_set_cursor()
Beschreibung
Ausgabe eines Cursors im Textmodus.
Funktions-Definition
void lcd_set_cursor(char row, char col)
Rückgabewert
void
Übergabewerte
char row
Die aktuelle Zeile bei 0 beginned.
char col
Die aktuelle Spalte bei 0 beginned.
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsp()
Beschreibung
Dies ist die Basisfunktion für alle lcd_vdsp.... (lcd video display) Funktionen.
Diese Familie von Funktionen sind im Text- sowie Graphikmodus gleichermaßen aktiv. Im Graphikmodus kann
lediglich das Attribute blinkend nicht verwendet werden.
Funktions-Definition
void lcd_vdsp(vdsp_struct HUGE* dsp)
lcd_vdsp(char _HUGE* str)
Rückgabewert
void
Übergabewerte
vdsp_struct _HUGE* dsp
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsps()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (string).
Ausgabe einer Zeichenkette ab der aktuellen Cursor-Position.
Funktions-Definition
void lcd_vdsps(char _HUGE* str)
Rückgabewert
void
Übergabewerte
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspls()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local string).
Ausgabe einer Zeichenkette ab der Cursor-Position „row“, „col“.
Dabei entspricht “row” der Zeile (beginnend mit 0) und “col” der Spalte (beginnend bei 0).
Funktions-Definition
void lcd_vdspls(char row, char col, char _HUGE* str)
Rückgabewert
void
Übergabewerte
char row
char col
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspas()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute string).
Ausgabe einer Zeichenkette ab der aktuellen Cursor-Position mit einem Attribut.
Funktions-Definition
void lcd_vdspas(char attribute, char _HUGE* str)
Rückgabewert
void
Übergabewerte
char attribute
Attribute der LCD-Routinen aus can.h :
#define LCD_NORMAL 0x7F
#define LCD_BLINK 0x01
#define LCD_REVVID 0x02
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsplas()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute string).
Ausgabe einer Zeichenkette ab der angegebenen Cursor-Position mit einem Attribut.
Funktions-Definition
void lcd_vdsplas( char row, char col, char attribute,
char _HUGE* str)
Rückgabewert
void
Übergabewerte
char row
char col
char attribute
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspd()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (decimal).
Ausgabe einer Short-Zahl ab der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdspd(char vk, short wert)
Rückgabewert
void
Übergabewerte
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspad()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute decimal).
Ausgabe einer Short-Zahl ab der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdspad(char att, char vk, short wert)
Rückgabewert
void
Übergabewerte
char vk
char att
short wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspld()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local decimal).
Ausgabe einer Short-Zahl ab der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdspld(char row, char col, char vk, short wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsplad()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute decimal).
Ausgabe einer Short-Zahl ab der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdsplad(char row, char col, char att, char vk, short wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspal()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute long).
Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdspal(char att, char vk, long wert)
Rückgabewert
void
Übergabewerte
char att
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspll()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local long).
Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdspll(char row, char col, char vk, long wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsplal()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute long).
Ausgabe einer Longt-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void lcd_vdsplal(char row, char col, char att, char vk, long wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
long wert
Beispiel
lcd_vdspls(0,0,"BUS OFF");
lcd_vdspas(LCD_BLINK,"Kabelbruch");
lcd_vdspld(1,0,5,swert); /* "12345" fünfstellige Anzeige eines short-Wertes */
lcd_vdspls(0,0,"BUS OFF");
lcd_vdspas(LCD_BLINK,"Kabelbruch");
lcd_vdspas(LCD_BLINK | LCD_REVVID,"Rev.Darstellung blinkend");
sprintf(buffer,"Istwert = %5.2f",125.5F);
lcd_vdspls(1,0,buffer);
Hinweis
Verwandte Funktionen
lcd_vdspf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (float).
Ausgabe einer Float-Zahl ab der aktuellen Cursor-Position im Format vk-Stellen, davon nk-Stellen für Nachkomma.
Funktions-Definition
void lcd_vdspf(char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdspaf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (attribute float).
Ausgabe einer Float-Zahl ab der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.
Funktions-Definition
void lcd_vdspaf(char att, char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char att
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsplf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local float).
Ausgabe einer Float-Zahl ab der angegebenen Cursor-Position im Format vk-Stellen,
davon nk-Stellen für Nachkomma.
Funktions-Definition
void lcd_vdsplf(char row, char col, char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_vdsplaf()
Beschreibung
Aus der Basisfunktion lcd_vdsp.... (lcd video display) abgeleitete Funktion (local attribute float).
Ausgabe einer Float-Zahl ab der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma
Funktions-Definition
void lcd_vdsplaf( char row, char col, char att, char vk, char nk,
float wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_set_pos()
Beschreibung
Positionieren des Anfangspunktes einer Linie.
Funktions-Definition
void lcd_draw_set_pos(int x, int y)
Rückgabewert
void
Übergabewerte
int x
Pixelgenau Poition in x-Richtung bei 0 beginnend.
int y
Pixelgenau Poition in y-Richtung bei 0 beginnend.
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_line()
lcd_point()
Beschreibung
Ausgabe eines Punktes an den Koordinaten (x,y). Die Position des Punktes wird in Pixeln angegeben.
Der Nullpunkt des Koordinatensystems liegt in der linken, oberen Ecke der LCD-Anzeige. Die positive
x-Richtung zeigt nach rechts, die positive y-Richtung zeigt nach unten.
Zur Angabe der Farbe des Punkes können folgende defines verwendet werden:
Funktions-Definition
void lcd_point(int x, int y, long color, RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int x
Pixelgenau Poition in x-Richtung bei 0 beginnend.
int y
Pixelgenau Poition in y-Richtung bei 0 beginnend.
long color
Vordefinierte Farben aus can.h :
#define COLOR_BLACK 0x000000L /* 0 */
#define COLOR_BROWN 0x000080L /* 1 */
#define COLOR_GREEN 0x008000L /* 2 */
#define COLOR_DKGREEN 0x008080L /* 3 */
#define COLOR_DKBLUE 0x800000L /* 4 */
#define COLOR_DKMAGENTA 0x800080L /* 5 */
#define COLOR_BLUE_GREEN 0x808000L /* 6 */
#define COLOR_DKGRAY 0x808080L /* 7 */
#define COLOR_GRAY 0xC0C0C0L /* 8 */
#define COLOR_RED 0x0000FFL /* 9 */
#define COLOR_LTGREEN 0x00FF00L /* 10 */
#define COLOR_YELLOW 0x00FFFFL /* 11 */
#define COLOR_BLUE 0xFF0000L /* 12 */
#define COLOR_MAGENTA 0xFF00FFL /* 13 */
#define COLOR_CYAN 0xFFFF00L /* 14 */
#define COLOR_WHITE 0xFFFFFFL /* 15 */
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_line()
Beschreibung
Zeichnen einer Linie. Der Anfangspunkt ist der gerade aktuelle Punkt. Er kann zuvor mit der Funktion
„lcd_draw_set_pos“ gesetzt werden. Soll eine Folge von zusammenhängenden Linien gezeichnet werden, so genügt
die einmalige Positionierung des Anfangspunktes. Wenn danach mehrfach die Funktion „lcd_draw_line“ aufgerufen
wird, ist der Anfangspunkt einer weiteren Linie der Endpunkt der vorherigen Linie. Über „pRect“ kann die
Zugehörigkeit zu einem Fenster im Display definiert werden.
Funktions-Definition
void lcd_draw_line( int to_pos_x, int to_pos_y, long color,
RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int to_pos_x
int to_pos_y
long color
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_set_pos
lcd_draw_box()
Beschreibung
Zeichnen eines Rahmens.
Eine Ecke des Rahmens hat die Koordinaten (xa1/ya1) die diagonal, gegenüberliegende Ecke hat die Koordinaten
(xa2/ya2).
Mit „forecolor“ wird die Farbe des Rahmens übergeben.
Mit dem Übergabeparameter „d_box“ ist die Darstellung vorgebbar.
Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.
Funktions-Definition
Void lcd_draw_box( int xa1, int ya1, int xa2, int ya2, int d_box,
long forecolor, RECTANGLE _HUGE* pRect)
Rückgabewert
Void
Übergabewerte
int xa1
int ya1
int xa2
int ya2
int d_box
Vordefinierte Rahmen:
#define BOX_3D_DOWNLIGHTED 0x01
#define BOX_3D_HIGHLIGHTED 0x02
#define BOX_FILLED 0x04
#define BOX_2D 0x08
long forecolor
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_point
lcd_block_set()
Beschreibung
Funktions-Definition
void lcd_block_set( int x1, int y1, int x2, int y2,
long color, RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int x1
int y1
int x2
int y2
long color
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_pyramid()
Beschreibung
Mit dieser Funktion kann ein Dreieck ausgegeben werden. Die Koordinaten (xa1/ya1) sind die Spitze der
Pyramide. „npixel“ bezeichnet die Höhe der Pyramide. Mit dem Parameter „filled“ kann bestimmt werden,
ob nur der Umriß oder eine dreieckige Fläche ausgegeben werden soll. Über „forecolor“ kann die Farbe
übergeben werde. Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.
Funktions-Definition
void lcd_draw_pyramid(int xa1, int ya1, int npixel, BOOL top,
BOOL filled, long forecolor,
RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int xa1
int ya1
int npixel
BOOL top
BOOL filled
long forecolor
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_circle()
Beschreibung
Zeichnen eines Kreises um den Mittlepunkt (xr, yr) mit dem Radius „r“ und der Farbe „color“. Über „pRect“ kann
die Zugehörigkeit zu einem Fenster im Display definiert werden.
Funktions-Definition
void lcd_draw_circle( int xr, int yr, int r, long color,
RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int xr
int yr
int r
long color
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_bitmap()
Beschreibung
Mit dieser Funktion kann eine Grafik ausgegeben werden.
Funktions-Definition
void lcd_draw_bitmap( int xa1, int ya1, int xa2, int ya2,
long forecolor, long backcolor, USIGN8 scale,
USIGN8 opaque, BITMAP_STRUCT _HUGE* bmp,
RECTANGLE _HUGE* pRect)
Rückgabewert
void
Übergabewerte
int xa1
int ya1
int xa2
int ya2
long forecolor
long backcolor
USIGN8 scale
USIGN8 opaque
BITMAP_STRUCT _HUGE* bmp
RECTANGLE _HUGE* pRect
Beispiel
Wenn diese Vorarbeiten durchgeführt sind, kann „lcd_draw_bitmap“ in „ob.c“ aufgerufen werden. Die
Koordinaten (xa1/ya1) geben die linke, obere Ecke der Grafik auf dem Dispay an. Die Koordinaten
(xa2/ya2) entspricht der rechten unteren Ecke des Bildes. Über den Parameter „scale“ kann ein
Vergrößerungsfaktor übergeben werden. „opaque“ gibt an, ob das Bild durchscheinend oder deckend sein
soll. Für „*bmp“ muß der Name der Struktur „BITMAP_STRUCT“ angegeben werden. Dieser Name kann
der C-Datei der Grafik entnommen werden. Er setzt sich aber immer aus der Zeichenfolge „bm_“ und dem
Namen der C-Datei zusammen.
Beispiel: lcd_draw_bitmap(20,20,40,40,0,COLOR_WHITE,1,0,&bm_bild,0);
Hinweis
Verwandte Funktionen
lcd_dsp_rom_char()
Beschreibung
Funktions-Definition
void lcd_dsp_rom_char(short x, short y, char attribute, USIGN8 ch)
Rückgabewert
void
Übergabewerte
short x
short y
char attribute
USIGN8 ch
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_font_char()
Beschreibung
Funktions-Definition
void lcd_draw_font_char( int x, int y, char ch, int scale,
long color,.FONT _HUGE* pFont,
RECTANGLE _HUGE* pRECT)
Rückgabewert
void
Übergabewerte
int x
int y
char ch
int scale
long color
FONT _HUGE* pFont
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_font_str()
Beschreibung
Voraussetzungen zum erfolgreichen Einsatz der Funktionen:
Der Zeichensatz muß zunächst im *.fnt-Format vorliegen. Anschließend muß die Font-Datei in ein
C-Format konvertiert werden. Dafür steht das Programm „font2c“ zur Verfügung, das auf DOS-Ebene aufgerufen
wird:
Gebrauch: font2c <Name der Font-Datei mit Endung> <Name der neuen C-Datei>
Beispiel: font2c rom8x6.fnt rom8x6
„font2c“ muß in dem Verzeichnis aufgerufen werden, in dem sich auch die zu konvertierende Font-Datei befindet.
Die durch das Programm erzeugte C-Datei wird unter dem selben Pfad abgelegt.
Die auf diese Weise erzeugte C-Datei des Fonts muß in „ob.c“ eingebunden werden.
Beispiel: #include "\Projekte\Projektname\Geraetename\ElaSim\rom6x8.c"
Wenn diese Vorarbeiten durchgeführt sind, können „lcd_draw_font_char“ und „lcd_draw_font_str“ in „ob.c“
aufgerufen werden.
Die Koordinaten (off_x, off_y) geben die Startkoordinate der Schrift auf dem Dispay an. „ch“ ist das
auszugebende Zeichen. „str“ ist der Pointer auf die auszugebende Zeichenfolge. „scale“ ist der
Vergrößerungsfaktor. Mit „color“ kann die Farbe der Schrift übergeben werden. Für „pFont“ muß der Name der
Zeichenfolge im Format „FONT“ angegeben werden. Dieser Name kann der C-Datei des Zeichensatzes
entnommen werden. „font2c“ nennt die Zeichenfolge immer „font“. Falls mehr als einen Zeichensatz verwendet
werden soll ist es erforderlich den Zeichensatz in der *.c-Datei umzubenennen. Zum Beispiel von „font“ auf
„fnt_rom8x6“. Über „pRect“ kann die Zugehörigkeit zu einem Fenster im Display definiert werden.
Beispiel: lcd_draw_font_str(20,20,"Hallo",1,COLOR_BLACK,&fnt_rom8x6,0);
Ausgabe der Zeichenfolge „Hallo“ an der Position (20/20) in der Originalgröße, in der Farbe Schwarz, mit
Zeichen aus dem Zeichensatz „fnt_rom8x6“.
Funktions-Definition
void lcd_draw_font_str( int x, int y, char _HUGE* str, int scale,
long color,.FONT _HUGE* pFont,
RECTANGLE _HUGE* pRECT)
Rückgabewert
void
Übergabewerte
int x
int y
char _HUIGE* str
int scale
long color
FONT _HUGE* pFont
RECTANGLE _HUGE* pRect
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_zoom_char()
Beschreibung
Funktions-Definition
void lcd_draw_zoom_char( int x, int y, char ch, int scale,
long color)
Rückgabewert
void
Übergabewerte
int x
int y
char ch
int scale
long color
Beispiel
Hinweis
Verwandte Funktionen
lcd_draw_zoom_str()
Beschreibung
Funktions-Definition
void lcd_draw_zoom_str( int x, int y, char _HUGE* str, int scale,
long color)
Rückgabewert
void
Übergabewerte
int x
int y
char _HUGE* str
int scale
long color
Beispiel
Hinweis
Verwandte Funktionen
lcd_resolution_x()
Beschreibung
Bestimmen der Breite der LCD-Anzeige in Pixeln.
Funktions-Definition
short lcd_resolution_x(void)
Rückgabewert
short
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
lcd_resolution_y()
Beschreibung
Funktions-Definition
short lcd_resolution_y(void)
Rückgabewert
short
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
led_display()
Beschreibung
Des weiteren können auf einem Frontpult zusätzliche Leuchtdioden (LEDs) untergebracht sein, z.B. bei
Funktionstasten. Mittels dieser Funktion können diese LEDs ein-, aus- und blinkend geschaltet werden. Die
Numerierung beginnt oben rechts mit 0x11 und ist in der ersten Zeile aufsteigend von 0x11 ... 0x1F. In der zweiten
Zeile von 0x21 ... 0x2F u.s.w..
Attribute der LED-Routinen :
#define LED_AUS 0x00
#define LED_EIN 0x01
#define LED_BLINK 0x02
Funktions-Definition
void led_display(unsigned char nr, char mode)
Rückgabewert
void
Übergabewerte
unsigned char nr
char mode
Beispiel
led_vdspls(0,0,"BUS");
led_vdspls(1,0,"OFF");
Hinweis
Verwandte Funktionen
led_vdsp()
Beschreibung
Funktions-Definition
void led_vdsp(vdsp_struct _HUGE* dsp)
Rückgabewert
void
Übergabewerte
vdsp_struct _HUGE* dsp
Beispiel
Hinweis
Verwandte Funktionen
led_vdsps()
Beschreibung
Ausgabe einer Zeichenkette auf der aktuellen Cursor-Position.
Funktions-Definition
void led_vdsps(char _HUGE* str)
Rückgabewert
void
Übergabewerte
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
led_vdspls()
Beschreibung
Funktions-Definition
void led_vdspls(char row, char col, char _HUGE* str)
Rückgabewert
void
Übergabewerte
char row
char col
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
led_vdspas()
Beschreibung
Funktions-Definition
void led_vdspas(char attribut, char _HUGE* str)
Rückgabewert
void
Übergabewerte
char attribute
char _HUGE* str
Beispiel
Hinweis
Verwandte Funktionen
led_vdspd()
Beschreibung
Ausgabe einer Short-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspd(char vk, short wert)
Rückgabewert
void
Übergabewerte
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspad()
Beschreibung
Ausgabe einer Short-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspad(char att, char vk, short wert)
Rückgabewert
void
Übergabewerte
char att
short wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspld()
Beschreibung
Ausgabe einer Short-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine
negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspld(char row, char col, char vk, short wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdsplad()
Beschreibung
Ausgabe einer Short-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdsplad(char row, char col, char att, char vk, short wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
short wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspl()
Beschreibung
Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative vk-
Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspl(char vk, long wert)
Rückgabewert
void
Übergabewerte
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspal()
Beschreibung
Ausgabe einer Long-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format
vk-Stellen, dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspl(char att, char vk, long wert)
Rückgabewert
void
Übergabewerte
char att
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspll()
Beschreibung
Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, dabei entspricht eine negative
vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdspll(char row, char col, char vk, long wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdsplal()
Beschreibung
Ausgabe einer Long-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
dabei entspricht eine negative vk-Stelle, daß die Ausgabe mit führenden Nullen erfolgt.
Funktions-Definition
void led_vdsplal(char row, char col, char att, char vk, long wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
long wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspf()
Beschreibung
Ausgabe einer Float-Zahl auf der aktuellen Cursor-Position im Format vk-Stellen, davon nk-Stellen für Nachkomma.
Funktions-Definition
void led_vdspf(char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdspaf()
Beschreibung
Ausgabe einer Float-Zahl auf der aktuellen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.
Funktions-Definition
void led_vdspaf(char att, char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char att
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdsplf()
Beschreibung
Ausgabe einer Float-Zahl auf der angegebenen Cursor-Position im Format vk-Stellen, davon nk-Stellen für
Nachkomma.
Funktions-Definition
void led_vdsplf(char row, char col, char vk, char nk, float wert)
Rückgabewert
void
Übergabewerte
char row
char col
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdsplaf()
Beschreibung
Ausgabe einer Float-Zahl auf der angegebenen Cursor-Position unter Abgabe eines Attributes im Format vk-Stellen,
davon nk-Stellen für Nachkomma.
Funktions-Definition
void led_vdsplf( char row, char col, char att, char vk, char nk,
float wert)
Rückgabewert
void
Übergabewerte
char row
char col
char att
char vk
char nk
float wert
Beispiel
Hinweis
Verwandte Funktionen
led_vdsp_dp()
Beschreibung
Jede Sieben-Segment-Anzeige kann zusätzlich noch einen Dezimalpunkt aufweisen. Die Ansteuerung der
Koordinaten erfolgt in gleicher Konvention wie die Ausgabe. Mit dem Parameter “ON” kann über TRUE oder
FALSE der Dezimalpunkt ein- bzw. ausgeschaltet werden.
Funktions-Definition
void led_vdsp_dp(char row, char col, char on)
Rückgabewert
void
Übergabewerte
char row
char col
char on
Beispiel
Hinweis
Verwandte Funktionen
ad_10bit()
Beschreibung
Funktions-Definition
short ad_10bit(char nr)
Rückgabewert
short
Übergabewerte
char nr
Beispiel
Hinweis
Verwandte Funktionen
ad_12bit()
Beschreibung
Funktions-Definition
short ad_12bit(char nr)
Rückgabewert
short
Übergabewerte
char nr
Beispiel
Hinweis
Verwandte Funktionen
dac_out()
Beschreibung
Funktions-Definition
void dac_out(int nr, int wert)
Rückgabewert
void
Übergabewerte
int nr
int wert
Beispiel
Hinweis
Verwandte Funktionen
kbbgd()
Beschreibung
Funktions-Definition
char kbbgd(void)
Rückgabewert
char
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
kbrdy()
Beschreibung
Abfrage, ob ein Tastencode gespeichert ist.
Funktions-Definition
bit kbrdy(void)
char
Rückgabewert
bit
char
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
kblasttime()
Beschreibung
Abfrage wieviele Zehntelsekunden eine Taste bereits gedrückt wurde. Hiermit können inkrementierende
Tasteninterpretationen realisiert werden.
Funktions-Definition
short kblasttime(void)
Rückgabewert
short
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
kbnec()
Beschreibung
Auslesen des Tastaturspeichers. Falls der Tastaturspeicher leer ist, wird solange gewartet, bis ein gültiges Zeichen
vorliegt.
MERKE : Bevor ein Zeichen ausgelesen wird, sollte abgefragt werden ob ein gültiges
Zeichen ansteht, sonst wird der komplette Steuerungsablauf angehalten.
Funktions-Definition
short kbnec(void)
Rückgabewert
short
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
kbflush()
Beschreibung
Löschen des gesamten Tastaturspeichers. Wird eine nicht speichernde Tastenverarbeitung gewünscht, so muß nach
jeder kbnec() Funktion die kbflush() aufgerufen werden.
Funktions-Definition
void kbflush(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
kbsetkey()
Beschreibung
Simulieren eines Tastendruckes. Mit dieser Funktion können Tasteninformationen in den Tastaturspeicher
geschrieben werden.
Die Tasten liefern einen hexadezimalen Code entsprechend ihrer Anordnung. Die linke obere Taste ist die
Taste mit der Codezahl 0x11, die Taste rechts daneben 0x12, die Taste rechts daneben 0x13 u. s. w. Die
Tasten in der zweiten Reihe beginnen mit 0x21 u.s.w. Die Beschriftung auf der Frontfolie ist wahlfrei und
kann über #define-Anweisungen beschriftet werden .
z.B. #define Taste_Pfeil_oben 0x12
Rückgabewert
void
Übergabewerte
short key
Beispiel
Beispiele :
#define KB_F1 0x11
#define KB_F2 0x12
#define KB_STOP 0x31
....
if ( M0_E1 ) /* Falls E1 von Modul 0 aktiv ist muß die Anlage gestoppt werden. */
kbsetkey(KB_STOP);
if ( kbrdy() )
{
switch (kbnec())
{
case KB_F1:
lcd_vdspls(0,0,"Taste F1 wurde gedrückt.");
break;
case KB_F2:
lcd_vdspls(0,0,"Taste F2 wurde gedrückt.");
break;
case KB_STOP:
lcd_vdspls(0,0,"Taste STOP wurde gedrückt.");
kbflush(); /* Tastatusspeicher löschen */
break;
}
}
Verwandte Funktionen
FieldSetKey()
Beschreibung
Funktions-Definition
void FieldSetKey(short virtual_key, short physikal_key)
Rückgabewert
void
Übergabewerte
short virtual_key
short physical_key
Beispiel
Hinweis
Verwandte Funktionen
FieldTranslateKey()
Beschreibung
Funktions-Definition
short FieldTranslateKey(short physikal_key)
Rückgabewert
short
Übergabewerte
short physical_key
Beispiel
Hinweis
Verwandte Funktionen
FieldSetActive()
Beschreibung
Funktions-Definition
void FieldSetActive( FIELD _HUGE* pField, void _HUGE* pOrgValue,
char _HUGE* pszTitle, char _HUGE* pszUnit,
int nDataType, DATABUFFER4 db4MinValue,
DATABUFFER4 db4MaxValue,
DATABUFFER4 db4DefaultValue,
long nEEpromAdress, short nPosX, short nPosY,
char nPrePrecision, char nPostPrecision,
char nPasswordLevel,
void _HUGE* pHandleDatapoint)
Rückgabewert
void
Übergabewerte
FIELD _HUGE* pField
void _HUGE* pOrgValue
char _HUGE* pszTitle
char _HUGE* pszUnit
int nDataType
DATABUFFER4 db4MinValue
DATABUFFER4 db4MaxValue
DATABUFFER4 db4DefaultValue
long nEEpromAdress
short nPosX
short nPosY
char nPrePrecision
char nPostPrecision
char nPasswordLevel
void _HUGE* pHandleDatapoint
Beispiel
Hinweis
Verwandte Funktionen
FieldProcessKey()
Beschreibung
Funktions-Definition
void FieldProcessKey(FIELD _HUGE* pField, WND _HUGE* pWnd,short key)
Rückgabewert
void
Übergabewerte
FIELD _HUGE* pField
WND _HUGE* pWnd
short key
Beispiel
Hinweis
Verwandte Funktionen
FieldProcessVirtualKey()
Beschreibung
Funktions-Definition
void FieldProcessVirtualKey(FIELD _HUGE* pField, WND _HUGE* pWnd,
short key, char translate)
Rückgabewert
void
Übergabewerte
FIELD _HUGE* pField
WND _HUGE* pWnd
short key
char translate
Beispiel
Hinweis
Verwandte Funktionen
FieldStoreToEEPROM()
Beschreibung
Funktions-Definition
void FieldStoreToEEPROM( long nEEpromAdress, int nDataType,
DATABUFFER4 db4Value)
Rückgabewert
void
Übergabewerte
long nEEpromAdress
int nDataType
DATABUFFER4 db4Value
Beispiel
Hinweis
Verwandte Funktionen
FieldReadFromEEPROM()
Beschreibung
Funktions-Definition
void FieldReadFromEEPROM( long nEEpromAdress, int nDataType,
DATABUFFER4 _HUGE* pdb4EditValue)
Rückgabewert
void
Übergabewerte
long nEEpromAdress
int nDataType
DATABUFFER4 _HUGE* pdb4EditValue
Beispiel
Hinweis
Verwandte Funktionen
FieldSetEEFunction()
Beschreibung
Funktions-Definition
void FieldSetEEFunction( P_EE_ENABLE pArgEEenable,
P_EE_DISABLE pArgEEdisable,
P_EE_SHORT_RD pArgEEshortRD,
P_EE_SHORT_WR pArgEEshortWR)
Rückgabewert
void
Übergabewerte
P_EE_ENABLE pArgEEenable
P_EE_DISABLE pArgEEdisable
P_EE_SHORT_RD pArgEEshortRD
P_EE_SHORT_WR pArgEEshortWR
Beispiel
Hinweis
Verwandte Funktionen
feld_get_einheit()
Beschreibung
Liefert die pyhsikalische Einheit der aktuellen Eingabe.
Funktions-Definition
char _HUGE* feld_get_einheit(void)
Rückgabewert
char _HUGE*
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_get_eingabe()
Beschreibung
Liefert mittels TRUE oder FALSE den Zustand der Eingabe.
Funktions-Definition
char feld_get_eingabe(void)
Rückgabewert
char
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_get_nachkomma()
Beschreibung
Liefert die Anzahl Nachkommastellen.
Funktions-Definition
char feld_get_nachkomma(void)
Rückgabewert
char
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_get_typ()
Beschreibung
Liefert den aktuellen Typ einer Feldeingabe, dieser kann sein : FELD_TYP_SHORT, FELD_TYP_FLOAT,
FELD_TYP_LONG bis FW < 1.20.
Ab FW 1.20 wurde für CPU515/CPU960/CPU167 einheitlich geändert und umbenannt :
FELD_TYP_SHORT ersetz durch DATATYPE_SHORT
FELD_TYP_LONG ersetz durch DATATYPE_LONG
FELD_TYP_FLOAT ersetz durch DATATYPE_FLOAT
Funktions-Definition
char feld_get_typ(void)
Rückgabewert
char
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_check_0()
Beschreibung
Prüft einen eingegebenen “Float”-Wert auf 0 ab.
Funktions-Definition
float feld_check_0(float wert)
Rückgabewert
float
Übergabewerte
float wert
Beispiel
Hinweis
Verwandte Funktionen
feld_get_float_wert()
Beschreibung
Liefert den aktuell eingegebenen “Float”-Wert.
Funktions-Definition
float feld_get_float_wert(void)
Rückgabewert
float
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_get_long_wert()
Beschreibung
Funktions-Definition
long feld_get_long_wert(void)
Rückgabewert
long
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_get_short_wert()
Beschreibung
Funktions-Definition
short feld_get_short_wert(void)
Rückgabewert
short
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
feld_set()
Beschreibung
Funktions-Definition
void feld_set(feld_struct _HUGE* pfeld)
Rückgabewert
void
Übergabewerte
feld_struct _HUGE* pfeld
Beispiel
Hinweis
Verwandte Funktionen
feld_set_eingabe()
Beschreibung
Funktions-Definition
void feld_set_eingabe(char eingabe)
Rückgabewert
void
Übergabewerte
char eingabe
Beispiel
Hinweis
Verwandte Funktionen
feld_set_prio()
Beschreibung
Funktions-Definition
void feld_set_prio(char prio)
Rückgabewert
void
Übergabewerte
char prio
Beispiel
Hinweis
Verwandte Funktionen
feld_taste()
Beschreibung
Funktions-Definition
void feld_taste(short key)
Rückgabewert
void
Übergabewerte
short key
Beispiel
Hinweis
Verwandte Funktionen
feld_set_float()
Beschreibung
Eingabe einer “Float”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Darstellung beträgt “nachkomma” Nachkommastellen, die Kennwortpriorität
entspricht “kennwort_prio” und die Adresse im EEPROM-Speicher entspricht “eeprom_adresse”.
Funktions-Definition
void feld_set_float( float HUGE* wert, float min, float max,
float memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)
Rückgabewert
void
Übergabewerte
float _HUGE* wert
float min
float max
float memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse
Beispiel
Hinweis
Verwandte Funktionen
feld_set_long()
Beschreibung
Eingabe einer “Long”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Kennwortpriorität entspricht “kennwort_prio” und die Adresse im EEPROM-
Speicher entspricht “eeprom_adresse”.
Funktions-Definition
void feld_set_long( long HUGE* wert, long min, long max,
long memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)
Rückgabewert
void
Übergabewerte
long _HUGE* wert
long min
long max
long memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse
Beispiel
Hinweis
Verwandte Funktionen
feld_set_short()
Beschreibung
Eingabe einer “Short”-Zahl im Wertebereich von “min” bis “max” mit dem Standardwert “memo”, der
pyhsikalischen Einheit “einheit”, die Kennwortpriorität entspricht “kennwort_prio” und die Adresse im EEPROM-
Speicher entspricht “eeprom_adresse”.
Funktions-Definition
void feld_set_short( short HUGE* wert, short min, short max,
short memo, char HUGE* einheit,
char nachkomma, char kennwort_prio,
short eeprom_adresse)
Rückgabewert
void
Übergabewerte
short _HUGE* wert
short min
short max
short memo
char _HUGE* einheit
char nachkomma
char kennwort_prio
short eeprom_adresse
Beispiel
Hinweis
Verwandte Funktionen
feld_ink_vorkomma()
Beschreibung
Hochzählen der Vorkommastellen eines Feldwertes mit der „FELD_TASTE_PLUS“ und Dekrementieren der
Nachkommastellen eines Feldwertes mit der „FELD_TASTE_MINUS“. Am Anfang wird mit 1er Schritten
inkrementiert. Nach „sek1“ Zehntelsekunden und Übertrag von 9.?? Auf 10.?? Wird in „ink1“er Schritten
inkrementiert. Nach „sek2“ Zehntelekunden und Übertrag von 9.?? auf 10.?? wird in „ink2“er Schritten
inkrementiert. Nach „sek3“ Zehntelsekunden und Übertrag von 99.?? auf 100.?? wird in „ink3“ er Schritten
inkrementiert.
Den Parametern „sek...“ müssen Werte > 0 übergeben werden.
Funktions-Definition
void feld_ink_vorkomma( short sek1, short ink1, short sek2,
short ink2, short sek3, short ink3)
Rückgabewert
void
Übergabewerte
short sek1
short ink1
short sek2
short ink2
short sek3
short ink3
Beispiel
Hinweis
Verwandte Funktionen
feld_dek_vorkomma()
Beschreibung
Funktions-Definition
void feld_dek_vorkomma( short sek1, short dek1, short sek2,
short dek2, short sek3, short dek3)
Rückgabewert
void
Übergabewerte
short sek1
short dek1
short sek2
short dek2
short sek3
short dek3
Beispiel
Hinweis
Verwandte Funktionen
feld_ink_nachkomma()
Beschreibung
Hochzählen der Nachkommastellen eines Feldwertes mit der „FELD_TASTE_PLUS“ und Dekrementieren der
Nachkommastellen eines Feldwertes mit der „FELD_TASTE_MINUS“.
Am Anfang wird in 1er Schritten inkrementiert, d. h.:
bei 1 Nachkomma : 0.0 ==> 0.1 ==> 0.2 ==> 0.3 ==> u.s.w.
bei 2 Nachkomma : 0.00 ==> 0.01 ==> 0.02 ==> 0.03 ==> u.s.w.
bei 3 Nachkomma : 0.000 ==> 0.001 ==> 0.002 ==> 0.003 ==> u.s.w.
bei 4 Nachkomma : 0.0000 ==> 0.0001 ==> 0.0002 ==> 0.0003 ==> u.s.w.
Hinweis : maximal 4 Nachkommastellen !!!
Nach „sek1“ 1/10sec wird in „ink1“er Schritten inkrementiert
Nach „sek2“ 1/10sec wird in „ink2“er Schritten inkrementiert.
Erfolgt einmal der Übertrag auf Vorkomma-Inkrementierung, so wird nur noch die Vorkommastelle bearbeitet,
bis die Taste (+) losgelassen und erneut gedrückt wird.
Wichtig : Der Übertrag auf Vorkomma findet statt, falls der Nachkommawert zahlenwertmäßig über den
Wert der angegebenen Dekade läuft.
Funktions-Definition
void feld_ink_nachkomma( short sek1, short ink1, short sek2,
short ink2, short sek3, short ink3)
Rückgabewert
void
Übergabewerte
short sek1
short ink1
short sek2
short ink2
short sek3
short ink3
Beispiel
Hinweis
Verwandte Funktionen
feld_dek_nachkomma()
Beschreibung
Funktions-Definition
void feld_dek_nachkomma( short sek1, short dek1, short sek2,
short dek2, short sek3, short dek3)
Rückgabewert
void
Übergabewerte
short sek1
short dek1
short sek2
short dek2
short sek3
short dek3
Beispiel
Hinweis
Verwandte Funktionen
feld_ink_dek()
Beschreibung
Funktions-Definition
void feld_ink_dek(char fun_idx, short _HUGE* pvalues)
Rückgabewert
void
Übergabewerte
char fun_idx
short _HUGE* pvalues
Beispiel
Hinweis
Verwandte Funktionen
prtc()
Beschreibung
Funktions-Definition
void prtc(char c)
Rückgabewert
void
Übergabewerte
char c
Beispiel
Hinweis
Verwandte Funktionen
prtreset()
Beschreibung
Zurücksetzen der parallelen Schnittstelle (CENTRONICS).
Funktions-Definition
void prtreset(void)
Rückgabewert
void
Übergabewerte
void
Beispiel
Hinweis
Verwandte Funktionen
prtstr()
Beschreibung
Ausgabe einer Zeichenkette auf der aktuellen Position auf dem Blatt.
Funktions-Definition
void prtstr(char _HUGE* str)
Rückgabewert
void
Übergabewerte
char _HUGE* str
Beispiel
Beispiele :
#define ESC 27
char buffer[256];
....
prtc(ESC),prtc(0x1A),prtc(0x2E); /* Ausgabe einer druckerspezifischen ESC-Sequenz */
prtstr("Dies ist eine Zeile auf dem Drucker\n\r");
prtstr("Dies ist eine zweite Zeile auf dem Drucker\n\r");
prtstr("Dies ist eine dritte Zeile auf dem Drucker\n\r");
sprintf(buffer,"Dies ist eine vierte formatierte Zeile auf dem Drucker mit Zahl :\
%d\n\r", 25);
prtstr(buffer);
Hinweis
Verwandte Funktionen
uw_outp()
Beschreibung
Funktions-Definition
USIGN32 uw_outp(USIGN32 port, USIGN32 value, USIGN32 write_mask)
Rückgabewert
USIGN32
Übergabewerte
USIGN32 port
USIGN32 value
USIGN32 write_mask
Beispiel
Hinweis
Verwandte Funktionen
uw_inp()
Beschreibung
Funktions-Definition
USIGN32 uw_inp(USIGN32 port, USIGN32 read_mask)
Rückgabewert
USIGN32
Übergabewerte
USIGN32 port
USIGN32 read_mask
Beispiel
Hinweis
Verwandte Funktionen