⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.h.bak

📁 TMS320VC33的应用程序 、TMS320VC33的应用程序
💻 BAK
字号:
/********************************************************************************/
/* serial.h	v1.00																*/
/* 版权(c)	2003-   	北京合众达电子技术有限责任公司							*/
/* 设计者:	刘宁																*/
/********************************************************************************/
/******************************************************************************/
/*  serial.h - MCBSP54 routines header file.                                 */
/*                                                                            */
/*     This module provides the implementation for the serial ports                  */
/*     on the TMS320vc33 DSP.                                                 */

/******************************************************************************/
                                                                 
/******************************************************************/
/* This header file  defines the data structures and macros to    */
/* necessary to address the Serial Port             */
/******************************************************************/
#ifndef _serial
#define _serial

#ifndef gcontrol#define gcontrol            _gctrl._intval#endif#ifndef gcontrol_bit#define gcontrol_bit        _gctrl._bitval#endif#define s_x_control       _xctrl._intval#define s_x_control_bit   _xctrl._bitval#define s_r_control       _rctrl._intval#define s_r_control_bit   _rctrl._bitval#define s_rxt_control     _rxtctrl._intval#define s_rxt_control_bit _rxtctrl._bitval#define s_rxt_counter     _rxtcounter._intval#define s_rxt_counter_bit _rxtcounter._bitval#define s_rxt_period      _rxtperiod._intval#define s_rxt_period_bit  _rxtperiod._bitval/**************************************************************************//* MACRO DEFINITIONS FOR SERIAL PORT BASE ADDRESS                         *//**************************************************************************/#define SERIAL_PORT_ZERO    0#define SERIAL_PORT_ONE     1#define SERIAL_PORT_BASE    0x808040#define SERIAL_PORT_SIZE    16#define SERIAL_PORT_ADDR(n) ((volatile SERIAL_PORT_REG *) ((char *) \                            SERIAL_PORT_BASE + (n)*SERIAL_PORT_SIZE))/**************************************************************************//* STRUCTURE DEFINTION FOR SERIAL PORT GLOBAL CONTROL REGISTER            *//**************************************************************************/typedef union{    unsigned int _intval;    struct    {         unsigned int rrdy     :1;                  /* Receive ready flag */         unsigned int xrdy     :1;                /* Transmitt ready flag */         unsigned int fsxout   :1;                   /* FSX configuration */         unsigned int xsrempty :1;              /* Transm shift reg empty */         unsigned int rsrfull  :1;              /* Receive registers full */         unsigned int hs       :1;             /* Handshaking mode enable */         unsigned int xclksrce :1;                 /* Transm clock source */         unsigned int rclksrce :1;                /* Receive clock source */         unsigned int xvaren   :1;          /* Transm data rate signaling */         unsigned int rvaren   :1;          /* Receiv data rate signaling */         unsigned int xfsm     :1;              /* Transm frame sync mode */         unsigned int rfsm     :1;              /* Receiv frame sync mode */         unsigned int clkxp    :1;               /* Transm clock polarity */         unsigned int clkrp    :1;               /* Receiv clock polarity */         unsigned int dxp      :1;                /* Transm data polarity */         unsigned int drp      :1;                /* Receiv data priority */         unsigned int fsxp     :1;          /* Transm frame sync polarity */         unsigned int fsrp     :1;          /* Receiv frame sync polarity */         unsigned int xlen     :2;             /* Transm data word length */         unsigned int rlen     :2;             /* Receiv data word length */         unsigned int xtint    :1;       /* Transm timer interrupt enable */         unsigned int xint     :1;             /* Transm interrupt enable */         unsigned int rtint    :1;       /* Receiv timer interrupt enable */         unsigned int rint     :1;             /* Receiv interrupt enable */         unsigned int xreset   :1;                        /* Transm reset */         unsigned int rreset   :1;                        /* Receiv reset */         unsigned int r_rest   :4;                            /* reserved */    } _bitval;} SERIAL_PORT_CONTROL;/**************************************************************************//* STRUCTURE DEFINTION FOR SERIAL PORT RECEIVE/TRANSMIT PORT CONTROL      *//* REGISTER                                                               *//**************************************************************************/typedef union{    unsigned int _intval;    struct    {         unsigned int clkfunc  :1;              /* Clock function control */         unsigned int clki_o   :1;                   /* Clock i/o control */         unsigned int clkdato  :1;                /* Data output on clock */         unsigned int clkdati  :1;                 /* Data input on clock */         unsigned int dfunc    :1;               /* Data function control */         unsigned int di_o     :1;                    /* Data i/o control */         unsigned int ddatout  :1;                 /* Data output on data */         unsigned int ddatin   :1;                  /* Data input on data */         unsigned int fsfunc   :1;         /* Frame sync function control */         unsigned int fsi_o    :1;              /* Frame sync i/o control */         unsigned int fsdatout :1;           /* Data output on frame sync */         unsigned int fsdatin  :1;            /* Data input on frame sync */         unsigned int r_rest   :20;                           /* reserved */    } _bitval;} RX_PORT_CONTROL;/**************************************************************************//* STRUCTURE DEFINTION FOR SERIAL PORT RECEIVE/TRANSMIT TIMER CONTROL     *//* REGISTER                                                               *//**************************************************************************/typedef union{    unsigned int _intval;    struct    {         unsigned int xgo      :1;      /* Reset and start transmit timer */         unsigned int xhld_    :1;                   /* Transm timer hold */         unsigned int xcp_     :1;                   /* Transm clock mode */         unsigned int xclksrc  :1;                 /* Transm clock source */         unsigned int r_4      :1;                            /* reserved */         unsigned int xtstat   :1;                 /* Transmit timer stat */         unsigned int rgo      :1;       /* Reset and start receive timer */         unsigned int rhld_    :1;                  /* Receive timer hold */         unsigned int rcp_     :1;                  /* Receive clock mode */         unsigned int rclksrc  :1;                /* Receive clock source */         unsigned int r_10     :1;                            /* reserved */         unsigned int rtstat   :1;                  /* Receive timer stat */         unsigned int r_rest   :20;                           /* reserved */    } _bitval;} RX_TIMER_CONTROL;/**************************************************************************//* STRUCTURE DEFINTION FOR SERIAL PORT RECEIVE/TRANSMIT TIMER COUNTER     *//* REGISTER                                                               *//**************************************************************************/typedef union{    unsigned int _intval;    struct    {         unsigned int x_counter:16;             /* Transmit timer counter */         unsigned int r_counter:16;              /* Receive timer counter */    } _bitval;} RX_TIMER_COUNTER;/**************************************************************************//* STRUCTURE DEFINTION FOR SERIAL PORT RECEIVE/TRANSMIT TIMER PERIOD      *//* REGISTER                                                               *//**************************************************************************/typedef union{    unsigned int _intval;    struct    {         unsigned int x_period :16;              /* Transmit timer period */         unsigned int r_period :16;               /* Receive timer period */    } _bitval;} RX_TIMER_PERIOD;/**************************************************************************//* STRUCTURE DEFINITION FOR SERIAL PORT REGISTERS                         *//**************************************************************************/typedef struct{    SERIAL_PORT_CONTROL _gctrl;             /* Serial port global control */    unsigned int        reserved1;                            /* reserved */    RX_PORT_CONTROL     _xctrl;                    /* Transm port control */    RX_PORT_CONTROL     _rctrl;                  /* Receive port control */    RX_TIMER_CONTROL    _rxtctrl;      /* Receive/transmit timer control */    RX_TIMER_COUNTER    _rxtcounter;   /* Receive/transmit timer counter */    RX_TIMER_PERIOD     _rxtperiod;     /* Receive/transmit timer period */    unsigned int        reserved2;                           /* reserved */    unsigned int        x_data;             /* Serial port transmit data */    unsigned int        reserved3[3];                        /* reserved */    unsigned int        r_data;              /* Serial port receive data */    unsigned int        reserved4[3];                        /* reserved */} SERIAL_PORT_REG;/**************************************************************************//* SERIAL PORT MACROS FOR BIT FIELD DEFINITIONS                           *//**************************************************************************//* Serial port macros for global control register integer assignments     *//* e.g. SERIAL_PORT_ADDR(0)->gcontrol = XVAREN | DXP | XLEN_16 set the    *//* corresponding bits of serial port 0's global control register          *//**************************************************************************/#define RRDY		0x1#define XRDY		0x2#define FSXOUT		0x4#define XSREMPTY	0x8#define RSRFULL 	0x10#define HS		0x20#define XCLKSRCE	0x40#define RCLKSRCE	0x80#define XVAREN		0x100#define RVAREN		0x200#define XFSM		0x400#define RFSM		0x800#define CLKXP		0x1000#define CLKRP		0x2000#define DXP		0x4000#define DRP		0x8000#define FSXP		0x10000#define FSRP		0x20000#define XLEN_8		0x00000#define XLEN_16 	0x40000#define XLEN_24 	0x80000#define XLEN_32 	0xC0000#define RLEN_8		0x000000#define RLEN_16 	0x100000#define RLEN_24 	0x200000#define RLEN_32 	0x300000#define XTINT		0x400000#define XINT		0x800000#define RTINT		0x1000000#define RINT		0x2000000#define XRESET		0x4000000#define RRESET		0x8000000#define INPUT_PIN       0#define OUTPUT_PIN      1#define DISABLED        0#define ENABLED         1#define EXTERNAL        0#define INTERNAL        1#define FIXED           0#define VARIABLE        1#define CONTINUOUS      1#define STANDARD        0#define ACTIVE_HIGH     0#define ACTIVE_LOW      1#define EIGHT_BITS      0#define SIXTEEN_BITS    1#define TWENTY_FOUR_BITS 2#define THIRTY_TWO_BITS 3#define RESET           0#define UN_RESET        1/**************************************************************************//* Serial port macros for fsx/dx/clkx control register integer            *//* assignments, e.g. SERIAL_PORT_ADDR(0)->s_x_control = CLKXFUNC | DXFUNC *//* sets the corresponding bits of serial port 0's fsx/dx/clkx control     *//* register                                                               *//**************************************************************************/#define CLKXFUNC	0x1#define CLKXI_O 	0x2#define CLKXDATOUT	0x4#define CLKXDATIN	0x8#define DXFUNC		0x10#define DXI_O		0x20#define DXDATOUT	0x40#define DXDATIN 	0x80#define FSXFUNC 	0x100#define FSXI_O		0x200#define FSXDATOUT	0x400#define FSXDATIN	0x800/**************************************************************************//* Serial port macros for fsr/dr/clkr control register integer            *//* assignments, e.g. SERIAL_PORT_ADDR(0)->s_r_control = CLKRFUNC | DRFUNC *//* sets the corresponding bits of serial port 0's fsr/dr/clkr control     *//* register                                                               *//**************************************************************************/#define CLKRFUNC	0x1#define CLKRI_O 	0x2#define CLKRDATOUT	0x4#define CLKRDATIN	0x8#define DRFUNC		0x10#define DRI_O		0x20#define DRDATOUT	0x40#define DRDATIN 	0x80#define FSRFUNC 	0x100#define FSRI_O		0x200#define FSRDATOUT	0x400#define FSRDATIN	0x800#define GENERAL_PURPOSE_IO 0#define SERIAL_PORT_PIN 1/**************************************************************************//* Serial port macros for receive/transmit timer control register integer *//* assignments, e.g. SERIAL_PORT_ADDR(0)->s_rxt_control = XGO | RGO       *//* sets the corresponding bits of serial port 0's receive/transmit control*//* register                                                               *//**************************************************************************/#define XGO		0x1#define XHLD_		0x2#define XCP_		0x4#define XCLKSRC 	0x8#define XTSTAT		0x20#define RGO		0x40#define RHLD_		0x80#define RCP_		0x100#define RCLKSRC 	0x200#define RSTAT		0x800#endif /* #ifndef _serial */
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -