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

📄 uart16554.h

📁 该代码完成了在8051控制下MT8965完成g.711编解码的功能。
💻 H
字号:
#ifndef __Uart16554_H
#define __Uart16554_H

#define  UART3_CS       0xf000
#define  UART2_CS       0xe000
#define  UART1_CS       0xd000
#define  UART0_CS       0xc000

#define  UART4BASE      0xff00
#define  UART3BASE      0xef00
#define  UART2BASE      0xdf00
#define  UART1BASE      0xcf00

#define  UARTDLL_OFFSET    0
#define  UARTDLM_OFFSET    1
#define  UARTIER_OFFSET    1
#define  UARTFCR_OFFSET    2
#define  UARTIIR_OFFSET    2
#define  UARTLCR_OFFSET    3
#define  UARTMCR_OFFSET    4
#define  UARTLSR_OFFSET    5
#define  UARTMSR_OFFSET    6
#define  UARTSCR_OFFSET    7

//1.8432MHZ CLK [divisor  = clock / (baud rate × 16)]
#define  RATE4800	   24
#define  RATE7200	   16
#define  RATE9600	   12
#define  RATE19200	   6
#define  RATE38400	   3
#define  RATE56000	   2

// FCR REGISTER
#define  FIFOEN               (1<<0)
#define  RESETRECFIFO         (1<<1)
#define  RESETTRAFIFO         (1<<2)
#define  DMAMODESEL           (1<<3)
#define  TRIGGER_LEVEL1	      (0<<6) 	//1 BYTE TRIGGER 
#define  TRIGGER_LEVEL4	      (1<<6)    //4 BYTE TRIGGER 
#define  TRIGGER_LEVEL8	      (2<<6)	//8 BYTE TRIGGER 
#define  TRIGGER_LEVEL16      (3<<6)  	//16 BYTE TRIGGER 

// IER REGISTER
#define  ERBI                 (1<<0)	//enable the received data available interrupt and the timeout interrupts
#define  DIS_ETBEI            (0<<1)	//disable transmitter holding register empty interrupt
#define  ETBEI                (1<<1)	//enable transmitter holding register empty interrupt
#define  ERLSI                (1<<2)	//enable receiver line status interrupt
#define  EDSSI                (1<<3)	//enable modem status interrupt

//LCR  REGISTER 
#define  DATA5		       0	//5 DATA BIT
#define  DATA6		       1	//6 DATA BIT
#define  DATA7		       2	//7 DATA BIT
#define  DATA8		       3	//8 DATA BIT
#define  LCRSTB                (1<<2)   //1.5 OR 2 STOP BIT
#define  LCRPEN                (1<<3)   //PARITY ENABLE
#define  LCREPS                (1<<4)   //EVEN PARITY ENABLE
#define  LCRSTICK              (1<<5)   //STICK PARITY ENABLE
#define  LCRBREAK              (1<<6)   //BREAK ENABLE
#define  LCRDLAB               (1<<7)   //0--Access Receiver Buffer,
					//1--Access Divisor Latches
//LINE STATUS REGISTER (READ ONLY)
#define  LSRDR                     (1<<0)    // DATA READY
#define  LSROE                     (1<<1)    // OVERRUN ERROR
#define  LSRPE                     (1<<2)    // PARITY ERROR
#define  LSRFE                     (1<<3)    // FRAMEING ERROR
#define  LSRBI                     (1<<4)    // BREAK INTEERUPT
#define  LSRTHRE                   (1<<5)    // TRANSMITTER HOLDING REGISTER EMPTY
#define  LSRTEMT                   (1<<6)    // TRANSMITER REGISTER EMPTY
#define  LSRERECFO             	   (1<<7)    // RECEIVE REGISTER EMPTY

//MODEM CONTROL REGISTOR
#define  DTRACT			   (1<<0)	//DTR ACTIVE
#define  RTSACT			   (1<<1)	//RTS ACTIVE
#define  EXTINTENABLE		   (1<<3)	//External Interrupt Enabled
#define  EXTINTDIS		   (0<<3)	//External Interrupt Disabled
#define  LOOPEN			   (1<<4)	//LOOP ENABLE

#define  LOC_BYTE(ax)      XBYTE[ax]

typedef  enum
{
    SONY  = 0x0,
	PELCO = 0x1,
	AD    = 0x2
} Camera_t;

typedef  enum
{
    SLAVE    = 0x0,
	HOLDOVER = 0x1,
	MASTER   = 0x2,
	AUTOCLK  = 0x3
} E1Clk_t;

typedef  enum
{
   	NORMAL_STATUS  = 0x0,
	LOOPIN_STATUS  = 0x1,
	LOOPOUT_STATUS = 0x2,
	ROUTER_STATUS  = 0x3,
	PIP_STATUS     = 0x4,
	PIP4_STATUS	   = 0x5
} E1LineStatus_t;

typedef  enum
{
   	UNKOWN_STATUS = 0,
	FOCUS_STATUS,
	YUANJIN_STATUS,
	APERCHER_STATUS
} CameraStatus_t;

//2级菜单
typedef  enum
{
	NO_MENU_STATUS = 0,
	MASTER_MENU_STATUS,				//进入设置Codec状态 
	NETWORK_MENU_STATUS,			//IP set
	ENCODER_MENU_STATUS,			//Encoder set
	DECODER_MENU_STATUS				//Decoder set
} MenuStatus_t;

//3级菜单
typedef  enum
{
	NOTSET_STATUS = 0,   	
	AV_STATUS,
	PRESET_STATUS,
	INVOKE_PRESET_STATUS,	
 	  	
	UNKOWN_SET_STATUS,

	IP_SET_STATUS,
	MASK_SET_STATUS,
	GATEWAY_SET_STATUS,
	APPLAY_SET_STATUS,
	
	EAUDIO_MODE_STATUS,
	EAUDIO_BITRATE_STATUS,
	EVIDEO_FORMAT_STATUS,
	EVIDEO_RESOLUTION_STATUS,
	EVIDEO_TYPE_STATUS,				//(C/V)
	EVIDEO_BITRATE_STATUS,
	EVIDEO_SOURCE_STATUS,
	ESTREAM_ADDR_STATUS,
	ESTREAM_PORT_STATUS,
	ESTREAM_TYPE_STATUS,
	
	DVIDEO_FORMAT_STATUS,
	DSTREAM_ADDR_STATUS,
	DSTREAM_PORT_STATUS,
	DSTREAM_TYPE_STATUS
} SetNumStatus_t;

#define  TWO_VIDEO_INPUT	1
#define  VIDEO_VGA_INPUT	2
#define  ONE_VGA_INPUT		3

#define  TELECONTROL_LOCAL	0
#define  TELECONTROL_REMOTE	1

#define  TELECONTROL_TMR_COUNT		100
#define  SER4_TMR_COUNT				150
#define  TELECONTROL_CAMERA_RATE1	0x05  //慢
#define  TELECONTROL_CAMERA_RATE2	0x4   //中

#define  TX0_BASE		0x1000
#define  RX0_BASE		0x1800
#define  TX1_BASE		0x2000
#define  RX1_BASE		0x2800
#define  TX2_BASE		0x3000
#define  RX2_BASE		0x3800
#define  TX3_BASE		0x4000
#define  RX3_BASE		0x4800
#define  TX4_BASE		0x5000
#define  RX4_BASE		0x5800

#define	 CMD_BUFFER_LEN		0x800		//2k buffer

typedef	struct{
	uint16	  iBase;
	uint16	  iLen;
	uint16    iPut;
	uint16    iGet;	
}Cmd_Basebuf, *pCmd_Basebuf;

void 	test_xram(void);
void   	UART_INIT(uint16 uart_addr, uint8 baud);
void 	TL16554Init(void);
void 	cmd_buf_init(void);
void    printf_com_ok(void);

#endif


⌨️ 快捷键说明

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