📄 sport.h
字号:
/*********************************************************************/
/* sport.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 mmregs.h. */
/*********************************************************************/
/*********************************************************************/
/* INCLUDE MEMORY-MAPPED REGISTER DEFINITIONS */
/*********************************************************************/
#include "regs.h"
/**********************************************************************/
/* SP_MASK(txm, mcm, fsm, fo, dlb) - generates a mask for */
/* setting serial port control register. */
/* txm - transmit mode (ext or int frame sync) */
/* mcm - clock mode (ext or int clock source) */
/* fsm - frame sync mode (continuous or burst) */
/* fo - format (data sz 0 = 16 bit or 1 = 8 bits) */
/* dlb - digital loop back mode (disable/enable) */
/**********************************************************************/
#define SP_MASK(txm, mcm, fsm, fo, dlb)\
((txm ? (MASK_BIT(TXM) | WORD_SIZE):~MASK_BIT(TXM)) &\
(mcm ? (MASK_BIT(MCM) | WORD_SIZE):~MASK_BIT(MCM))&\
(fsm ? (MASK_BIT(FSM) | WORD_SIZE):~MASK_BIT(FSM)) &\
(fo ? (MASK_BIT(FO) | WORD_SIZE):~MASK_BIT(FO)) &\
(dlb ? (MASK_BIT(DLB) | WORD_SIZE):~MASK_BIT(DLB))
/**********************************************************************/
/* SP_RESET(port) - RESETS SERIAL PORT */
/* port - serail port number (selects which serial port) */
/**********************************************************************/
#define SP_RESET(port)\
*(unsigned int *)SP_ADDR(port) &= 0x0000
/**********************************************************************/
/* SP_TX_ENABLE(port) - ENABLES SERIAL PORT TRANSMIT */
/* port - serial port number (selects which serial port) */
/**********************************************************************/
#define SP_TX_ENABLE(port)\
*(unsigned int *)SP_ADDR(port) |= MASK_BIT(XRST)
/**********************************************************************/
/* SP_TX_RESET(port) - RESETS SERIAL PORT TRANSMIT */
/* port - serial port number (selects which serial port) */
/**********************************************************************/
#define SP_TX_RESET(port)\
*(unsigned int *)SP_ADDR(port) &= ~MASK_BIT(XRST)
/**********************************************************************/
/* SP_RX_ENABLE(port) - ENABLES SERIAL PORT RECEIVE */
/* port - serial port number (selects which serial port) */
/**********************************************************************/
#define SP_RX_ENABLE(port)\
*(unsigned int *)SP_ADDR(port) |= MASK_BIT(RRST)
/**********************************************************************/
/* SP_RX_RESET(port) - RESETS SERIAL PORT RECEIVE */
/* port - serial port number (selects which serial port) */
/**********************************************************************/
#define SP_RX_RESET(port)\
*(unsigned int *)SP_ADDR(port) &= ~MASK_BIT(RRST)
/**********************************************************************/
/* SP_START(port,start) - starts serial port receive/xmit for given */
/* serial port */
/* port - serial port number (selects which port) */
/* start - 1/2/3: starts rx/tx/both */
/**********************************************************************/
#define SP_START(port, start)\
LOAD_FIELD(SP_ADDR(port), start, RRST, 2)
/**********************************************************************/
/* SP_INIT(port, ctrl, start) */
/* port - serial port number (selects which serial port) */
/* ctrl - mask to set serial port control register */
/* start - 1/2/3: start rx/tx/both */
/**********************************************************************/
#define SP_INIT( port, ctrl)\
{ *(unsigned int *)SP_ADDR(port) &= 0x0000; \
*(unsigned int *)SP_ADDR(port) |= (~(MASK_BIT(RRST) | MASK_BIT(XRST)))\
& ctrl; \
*(unsigned int *)SP_ADDR(port) |= ctrl;}
/**********************************************************************/
/* SP_READ(port, size) - reads data from serial port */
/* port - serial port number (selects which port) */
/* size - data size of item to be read in bits */
/**********************************************************************/
#define SP_READ(port, size)\
((*(unsigned int *)DRR_ADDR(port)) & (~(WORD_SIZE << size)))
/**********************************************************************/
/* SP_WRITE(port,value,size) - writes data to serial port transmit */
/* port - serial port # */
/* value - data to be written out to serial port */
/* size - data size in bits */
/**********************************************************************/
#define SP_WRITE(port, value, size)\
*(unsigned int *)DXR_ADDR(port) = value & (~(WORD_SIZE << size))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -