📄 sport.h
字号:
/*********************************************************************//* sport.h v0.00 *//* Copyright (c) 1997 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 + -