Libraryfunktionen zu RS232DynLib.c

unsigned char uc_Init_Serial(unsigned char ucBaudRate,

                                                                         unsigned char ucUARTMode)

uc_Init_Serial: Mit dieser Funktion wird die serielle Schnittstelle initialisiert. Als Takt­ge­ber wird der Baudratengenerator verwendet. Zur Berechnung der Baudrate wird die Definition „CPU_XTAL“ und die Einstellung vom SFR DIVM verwendet.

    Mit der Variablen „ucBaudrate“ wird die Baudrate und mit ucUARTMode“ die Übertra­gungs­breite festgelegt. Die Definitionen aus den enum-Auf­zäh­lungs­typen geben die Baudraten bzw. die Anzahl der Bits an. Zudem wird der Interrupt der seriellen Schnitt­­stelle freigegeben.

Rückgabewert: 0x00

Verwendete Funktionen: ­–

Verwendete globale Variablen: stRecRS232

Verwendete Definitionen:

            enUARTBaudrate (_600= 1, _1200= 2, _2400= 4, _4800= 8, _9600=16,

                                          _19200=32, _38400=64, _57600=96, _115200=192)

              enUARTConfig  (_8BIT= 0x40, _9BIT= 0xC0)

C-Sourcemodul: RS232DynLib.c

 

unsigned char uc_SendRS232(unsigned char * ucPtr,

                                                     unsigned char ucLen)

uc_SendRS232: Mit dieser Funktion wird ein Sendevorgang der seriellen Schnittstelle gestartet. Der Pointer „ucPtr“ zeigt auf die Startadresse des zu sendenden Bereichs, bzw. des Wertes. In „ucLen“ ist die Anzahl der zu sendenden Bytes angegeben. Ist die Länge größer als das Array in der Struktur „stRecRS232.ucBuf[]“, wird der Sen­de­vorgang nicht durch­ge­führt. In diesem Fall ist der Rückgabewert 0xFF, ansonsten 0x00. Der weitere Sen­de­vorgang wird von der ISR der seriellen Schnittstelle übernommen.

Rückgabewert: 0x00, 0xFF

Verwendete Funktionen: ­memcpy()

Verwendete globale Variablen: stRecRS232, ucSendOffset

Verwendete Definitionen: –

C-Sourcemodul: RS232DynLib.c

 

void v_IntSer(void) interrupt 4 using 1

v_IntSer: In der seriellen ISR werden die Flags RI und TI abgefragt. Ist RI gesetzt und der Empfangsbuffer noch frei, wird der empfangene Wert in das Strukturelement „stRecRS23.ucBuf[]“ geschrieben.

F !! Das RI-Flag wird auf jeden Fall gelöscht, auch wenn der Inhalt des SFR SBUF nicht gespeichert werden konnte. !!

Ist das TI-Flag gesetzt, wird überprüft, ob noch Daten zum Versenden vorhanden sind. Ist dies der Fall, wird der nächste Wert aus dem Array „stSendRS232.ucBuf[] gelesen und versendet. Andernfalls wird die Variable „stSendRS232.ucLen“ auf den Wert „0“ gesetzt.

Rückgabewert: –

Verwendete Funktionen: ­–

Verwendete globale Variablen: stRecRS232, ucSendOffset

Verwendete Definitionen: –

C-Sourcemodul: RS232DynLib.c