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

📄 mcbsp54.h

📁 5416完整例程
💻 H
📖 第 1 页 / 共 2 页
字号:

#define GSYNC_OFF           0x00     /* CLKG always running                   */
#define GSYNC_ON            0x01     /* CLKG and FSG synch'ed to FSR          */ 


/* Multi-channel Control Register 1 and 2 MCR1/2 */

#define RMCM_CHANNEL_ENABLE	0x00 	 /* all 128 channels enabled              */
#define RMCM_CHANNEL_DISABLE	0x01 	 /* all channels disabled, selected by    */
						 /* enabling RP(A/B)BLK, RCER(A/B)        */

#define XMCM_CHANNEL_DX_DRIVEN 0x00  /* transmit data over DX pin for as many */
						 /* number of words as required           */
#define XMCM_XCER_CHAN_TO_DXR	0x01 	 /* selected channels written to DXR      */
#define XMCM_ALL_WORDS_TO_DXR	0x02 	 /* all words copied to DXR(1/2),         */
						 /* DX only driven for selected words     */
#define XMCM_CHANNEL_SYM_R/X	0x03 	 /* symmetric transmit and receive        */
						 /* operation                             */
     


#ifdef _INLINE
#define __INLINE static inline
#else
#define __INLINE
#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 + -