📄 tdmport.h
字号:
/********************************************************************/
/* tdmport.h v0.00 */
/* Copyright (c) 2000 Texas Instruments Incorporated */
/*********************************************************************/
/*********************************************************************/
/* STANDARD SERIAL PORT, BUFFERED SERIAL PORT, AND HOST PORT */
/* INTERFACE FUNCTIONS, MACROS, AND DATA STRUCTURES */
/* */
/* The MACROS defined here are dependent on the symbol definitions */
/* contained in regs.h. */
/*********************************************************************/
/*********************************************************************/
/*********************************************************************/
/* INCLUDE MEMORY-MAPPED REGISTER DEFINITIONS */
/*********************************************************************/
#include "regs.h"
/**********************************************************************/
/* TDM_MASK(rrst, xrst, txm, mcm, fsm, fo, dlb, tdm) - creates a mask */
/* setting tdm serial port control register. */
/* rrst - receive reset */
/* xrst - transmit reset */
/* txm - transmit mode (ext or int fram sync) */
/* mcm - clock mode (ext or int clock source) */
/* fsm - frame sync mode (continuous or burst) */
/* fo - format (data size 16 or 8) */
/* dlb - digital loop back mode (disable/enable) */
/* tdm - tdm mode bit */
/**********************************************************************/
#define TDM_SP_MASK( rrst, xrst, txm, mcm, fsm, fo, dlb)\
((rrst ? (MASK_BIT(RRST) | MASK_TARGET_WORD):~MASK_BIT(RRST)&\
(xrst ? (MASK_BIT(XRST) | MASK_TARGET_WORD):~MASK_BIT(XRST)&\
(txm ? (MASK_BIT(TXM) | MASK_TARGET_WORD):~MASK_BIT(TXM) &\
(mcm ? (MASK_BIT(MCM) | MASK_TARGET_WORD):~MASK_BIT(MCM) &\
(fsm ? (MASK_BIT(FSM) | MASK_TARGET_WORD):~MASK_BIT(FSM) &\
(fo ? (MASK_BIT(FO) | MASK_TARGET_WORD):~MASK_BIT(FO) &\
(dlb ? (MASK_BIT(DLB) | MASK_TARGET_WORD):~MASK_BIT(DLB) &\
(tdm ? (MASK_BIT(TDM) | MASK_TARGET_WORD):~MASK_BIT(TDM))
/**********************************************************************/
/* TDM_RESET - RESETS TDM SERIAL PORT */
/**********************************************************************/
#define TDM_RESET\
TSPC &= (MASK_BIT(XRST) | MASK_BIT(RRST))
/**********************************************************************/
/* TDM_TX_RESET - RESETS SERIAL PORT TRANSMIT */
/**********************************************************************/
#define TDM_TX_RESET\
TSPC &= MASK_BIT(XRST)
/**********************************************************************/
/* TDM_RX_RESET() - RESETS SERIAL PORT RECEIVE */
/**********************************************************************/
#define TDM_RX_RESET\
TSPC &= MASK_BIT(RRST)
/**********************************************************************/
/* TDM_START(start) - starts rx/tx/both depending on start type */
/* start - 1/2/3: starts rx/tx/both */
/**********************************************************************/
#define TDM_START(start)\
TSPC |= ((unsigned int)start << RRST)
/**********************************************************************/
/* TDM_INIT(ctrl, chan, raddr, xaddr, start) - initialize tdm port */
/* ctrl - mask to set serial port control register */
/* chan - channel number on which tdm port will transmit */
/* raddr - tdm receive address */
/* xaddr - tdm transmit address */
/**********************************************************************/
#define TDM_INIT(ctrl, chan, raddr, xaddr)\
{ TSPC &= ~(MASK_BIT(XRST) | MASK_BIT(RRST);\
TCSR = chan; /* initialize channel select register */\
TRTA = ((xaddr & 0xffu) << 8) | (raddr & 0xffu);\
TSPC |= (~(MASK_BIT(XXRST) | MASK_BIT(RRST)) & ctrl;\
TSPC |= ctrl;\
}
/**********************************************************************/
/* TDM_READ(port, size) - reads data from tdm serial port */
/* port- address of serial port receive register */
/* size - data size of item to be read in bits */
/**********************************************************************/
#define TDM_READ(size)\
( TRCV & (~(MASK_TARGET_WORD << size)))
/**********************************************************************/
/* TDM_WRITE(value, size) */
/* value - data to be written out to serial port */
/* size - data size in bits */
/**********************************************************************/
#define TDM_WRITE(value, size)\
TDXR = value & (~(MASK_TARGET_WORD << size))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -