|
unsigned char uc_Init_Serial(unsigned char ucBaudRate, unsigned char ucUARTMode) |
|
uc_Init_Serial: Mit dieser Funktion wird die serielle Schnittstelle initialisiert. Als Taktgeber 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 Übertragungsbreite festgelegt. Die Definitionen aus den enum-Aufzählungstypen geben die Baudraten bzw. die Anzahl der Bits an. Zudem wird der Interrupt der seriellen Schnittstelle 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 Sendevorgang nicht durchgeführt. In diesem Fall ist der Rückgabewert 0xFF, ansonsten 0x00. Der weitere Sendevorgang 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 |