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

📄 mcbsp54.h

📁 seed的滤波器设计程序
💻 H
📖 第 1 页 / 共 2 页
字号:

__INLINE void mcbsp_init(unsigned short port_no, 
				 unsigned int spcr1_ctrl, unsigned int spcr2_ctrl,
                         unsigned int rcr1_ctrl,  unsigned int rcr2_ctrl,
                         unsigned int xcr1_ctrl,  unsigned int xcr2_ctrl,
                         unsigned int srgr1_ctrl, unsigned int srgr2_ctrl,
                         unsigned int mcr1_ctrl,  unsigned int mcr2_ctrl,
                         unsigned int rcera_ctrl, unsigned int rcerb_ctrl,
                         unsigned int xcera_ctrl, unsigned int xcerb_ctrl,
                         unsigned int pcr_ctrl);


#ifdef _INLINE
/******************************************************************/
/* mcbsp_init - initialize and start serial port operation        */
/*                                                                */
/******************************************************************/
static inline void mcbsp_init(unsigned short port_no, 
							 unsigned int spcr1_ctrl, unsigned int spcr2_ctrl,
                             unsigned int rcr1_ctrl,  unsigned int rcr2_ctrl,
                             unsigned int xcr1_ctrl,  unsigned int xcr2_ctrl,
                             unsigned int srgr1_ctrl, unsigned int srgr2_ctrl,
                             unsigned int mcr1_ctrl,  unsigned int mcr2_ctrl,
                             unsigned int rcera_ctrl, unsigned int rcerb_ctrl,
                             unsigned int xcera_ctrl, unsigned int xcerb_ctrl,
                             unsigned int pcr_ctrl)
{
   /****************************************************************/
   /* Place port in reset - setting XRST & RRST to 0               */
   /****************************************************************/
   MCBSP_SUBREG_BITWRITE(port_no, SPCR1_SUBADDR, RRST, RRST_SZ, 0);
   MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, XRST, XRST_SZ, 0);
    
   /****************************************************************/
   /* Set values of all control registers                          */
   /****************************************************************/
   MCBSP_SUBREG_WRITE(port_no, RCR1_SUBADDR, rcr1_ctrl);
   MCBSP_SUBREG_WRITE(port_no, RCR2_SUBADDR, rcr2_ctrl);
   MCBSP_SUBREG_WRITE(port_no, XCR1_SUBADDR, xcr1_ctrl);
   MCBSP_SUBREG_WRITE(port_no, XCR2_SUBADDR, xcr2_ctrl);
   MCBSP_SUBREG_WRITE(port_no, SRGR1_SUBADDR, srgr1_ctrl);
   MCBSP_SUBREG_WRITE(port_no, SRGR2_SUBADDR, srgr2_ctrl);
   MCBSP_SUBREG_WRITE(port_no, MCR1_SUBADDR, mcr1_ctrl);
   MCBSP_SUBREG_WRITE(port_no, MCR2_SUBADDR, mcr2_ctrl);
   MCBSP_SUBREG_WRITE(port_no, RCERA_SUBADDR, rcera_ctrl);
   MCBSP_SUBREG_WRITE(port_no, RCERB_SUBADDR, rcerb_ctrl);
   MCBSP_SUBREG_WRITE(port_no, XCERA_SUBADDR, xcera_ctrl);
   MCBSP_SUBREG_WRITE(port_no, XCERB_SUBADDR, xcerb_ctrl);
   MCBSP_SUBREG_WRITE(port_no, PCR_SUBADDR, pcr_ctrl); 
   
   MCBSP_SUBREG_BITWRITE(port_no, SPCR1_SUBADDR, RRST, RRST_SZ, 1);
   MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, XRST, XRST_SZ, 1);
}
    
#endif



/********* Macro Definitions **************************************/


/******************************************************************/
/* MCBSP_BYTES_PER_WORD - return # of bytes required to hold #    */
/*                        of bits indicated by wdlen              */
/******************************************************************/
#define MCBSP_BYTES_PER_WORD(wdlen) \
        ((int)((wdlen) + 1) / 2)

/******************************************************************/
/* MCBSP_ENABLE(unsigned short port_no, unsigned short type) -    */
/*            starts serial port receive and/or transmit          */
/*            type= 1 rx, type= 2 tx, type= 3 both                */
/******************************************************************/
#define MCBSP_ENABLE(port_no,mode) \
         REG_WRITE(SPCR1_ADDR(port_no), \
          (MCBSP_SUBREG_READ(port_no, SPCR1_SUBADDR) | (mode & 1))); \
         REG_WRITE(SPCR2_ADDR(port_no), \
          (MCBSP_SUBREG_READ(port_no, SPCR2_SUBADDR) | ((mode >> 1) & 1)))

/******************************************************************/
/* MCBSP_TX_RESET() - reset transmit side of serial port          */
/*                                                                */
/******************************************************************/
#define MCBSP_TX_RESET(port_no)\
        MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, XRST, XRST_SZ, 0);
  

/******************************************************************/
/* MCBSP_RX_RESET() - reset receive side of serial port           */
/*                                                                */
/******************************************************************/
#define MCBSP_RX_RESET(port_no)\
	  MCBSP_SUBREG_BITWRITE(port_no, SPCR1_SUBADDR, RRST, RRST_SZ, 0);
  

/******************************************************************/
/* MCBSP_DRR1_READ() - read data value from serial port           */
/******************************************************************/
/* use instead: MCBSP_SUBREG_READ(... , DRR1_SUBADDR, ... )*/
  

/******************************************************************/
/* MCBSP_DRR2_READ() - read data value from serial port           */
/******************************************************************/
/* use instead: MCBSP_SUBREG_READ(... , DRR2_SUBADDR, ... )*/

                       

/******************************************************************/
/* MCBSP_DRR12_READ() - read data value from serial port          */
/*                      return value as unsigned long             */
/******************************************************************/
#define MCBSP_DRR12_READ(port_no)\
     (((*(volatile unsigned long* DRR2_ADDR(port_no)))<<16) &\
      (REG_READ(DRR1_ADDR(port_no)))
                            

/******************************************************************/
/* MCBSP_DXR12_WRITE() - write data value to serial port          */
/******************************************************************/
#define MCBSP_DXR12_WRITE(port_no, value)\
     (REG_WRITE(DXR2_ADDR(port_no), (unsigned int) (value >> 16)),\
      (REG_WRITE(DXR1_ADDR(port_no), (unsigned int) value)) )
     

/******************************************************************/
/* MCBSP_IO_ENABLE() - place port in general purpose I/O mode     */
/******************************************************************/
#define MCBSP_IO_ENABLE(port_no) \
        { MCBSP_TX_RESET(port_no); MCBSP_RX_RESET(port_no); \
          MCBSP_SUBREG_BITWRITE(port_no, PCR_SUBADDR, RIOEN, 2, 0x0003) } 


/******************************************************************/
/* MCBSP_IO_DISABLE() - take port out of general purpose I/O mode */
/******************************************************************/
#define MCBSP_IO_DISABLE(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, PCR_SUBADDR, RIOEN, 2, 0x0000)


/******************************************************************/
/* MCBSP_FRAME_SYNC_ENABLE - sets FRST bit in SPCR                */
/******************************************************************/
#define MCBSP_FRAME_SYNC_ENABLE(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, FRST, FRST_SZ, 0x0001)


/******************************************************************/
/* MCBSP_FRAME_SYNC_RESET - clrs FRST bit in SPCR                 */
/******************************************************************/
#define MCBSP_FRAME_SYNC_RESET(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, FRST, FRST_SZ, 0x0000)


/******************************************************************/
/* MCBSP_SAMPLE_RATE_ENABLE - sets GRST bit in SPCR               */
/******************************************************************/
#define MCBSP_SAMPLE_RATE_ENABLE(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, GRST, GRST_SZ, 0x0001)


/******************************************************************/
/* MCBSP_SAMPLE_RATE_RESET - clrs GRST bit in SPCR                */
/******************************************************************/
#define MCBSP_SAMPLE_RATE_RESET(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR2_SUBADDR, GRST, GRST_SZ, 0x0000)


/******************************************************************/
/* MCBSP_RRDY - returns selected ports RRDY                       */
/******************************************************************/
#define MCBSP_RRDY(port_no) \
        MCBSP_SUBREG_BITREAD(port_no, SPCR1_SUBADDR, RRDY, RRDY_SZ)


/******************************************************************/
/* MCBSP_XRDY - returns selected ports XRDY                       */
/******************************************************************/
#define MCBSP_XRDY(port_no) \
        MCBSP_SUBREG_BITREAD(port_no, SPCR2_SUBADDR, XRDY, XRDY_SZ)


/******************************************************************/
/* MCBSP_LOOPBACK_ENABLE - places selected port in loopback       */
/******************************************************************/
#define MCBSP_LOOPBACK_ENABLE(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR1_SUBADDR, DLB, DLB_SZ, 0x0001)


/******************************************************************/
/* MCBSP_LOOPBACK_DISABLE - takes port out of DLB                 */
/******************************************************************/
#define MCBSP_LOOPBACK_DISABLE(port_no) \
        MCBSP_SUBREG_BITWRITE(port_no, SPCR1_SUBADDR, DLB, DLB_SZ, 0x0000)


#ifdef __INLINE
#undef __INLINE
#endif

#endif /*_MCBSP_H_*/

⌨️ 快捷键说明

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