00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef XRS232__H
00012 #define XRS232__H
00013
00014 #include "task.h"
00015
00016 #define XRS232_N_PORTS 1
00017 #define XRS232_DEF_BAUDRATE 115200L
00018 #define XRS232_DEF_T_BUFF_SIZE 256
00019 #define XRS232_DEF_R_BUFF_SIZE 256
00020
00021 #define XRS232_STAT_NREC 0
00022 #define XRS232_STAT_TMT 1
00023
00024 #define XRS232_TSR_FIFO_FULL (4)
00025 #define XRS232_TSR_FIFO_MT (5)
00026 #define XRS232_TSR_FIFO_CNT_MSK (0xf)
00027
00028 #define XRS232_RSR_FIFO_CNT_MSK (0xf)
00029 #define XRS232_RSR_FIFO_FULL (4)
00030 #define XRS232_RSR_FIFO_MT (5)
00031 #define XRS232_RSR_OVRRUN (6)
00032 #define XRS232_RSR_FRAME (7)
00033
00034 #define XRS232_IER_RECV (0)
00035 #define XRS232_IER_TXMT (1)
00036 #define XRS232_IER_TXDONE (2)
00037
00038 #define XRS232_IFR_RECV (0)
00039 #define XRS232_IFR_TXMT (1)
00040 #define XRS232_IFR_TXDONE (2)
00041
00042 #define XRS232_IVR_RECV 0
00043 #define XRS232_IVR_TXMT 1
00044 #define XRS232_IVR_TXDONE 2
00045
00046 typedef struct {
00047 volatile unsigned char *pUDR;
00048 volatile unsigned char *pIER;
00049 volatile unsigned char *pIFR;
00050 volatile unsigned char *pIVR;
00051 volatile unsigned char *pRSR;
00052 volatile unsigned char *pTSR;
00053 volatile unsigned short *pUBRR;
00054 }xRREG;
00055
00056 typedef struct {
00057 unsigned short head;
00058 unsigned short tail;
00059 unsigned short nChar;
00060 unsigned short size;
00061 ECB *pSem;
00062 char *buff;
00063 }xIOREC;
00064
00065 typedef struct {
00066 IOREC Rx;
00067 IOREC Tx;
00068 xRREG *regs;
00069 } xSERIAL;
00070
00071 extern int xRInit(void);
00072
00073 #endif