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

📄 upio.h

📁 调试9200处理器板卡的一个调试实例
💻 H
字号:
#ifndef	UPIO_H
#define	UPIO_H



typedef volatile unsigned int AT91_REG;// Hardware register definition

#define		UPIO_BASE	0xFFFD8000
#define		UPIO_OER	0x010	// Output Enable Register
#define		UPIO_ODR	0x014	// Output Disable Registerr
#define		UPIO_OSR	0x018	// Output Status Register
#define		UPIO_SODR	0x030	// Set Output Data Register
#define		UPIO_CODR	0x034	// Clear Output Data Register
#define		UPIO_ODSR	0x038	// Output Data Status Register
#define		UPIO_PDSR	0x03C	// Pin Data Status Register
#define		UPIO_MDER	0x040	// Multi-driver Enable Register
#define		UPIO_MDDR	0x044	// Multi-driver Disable Register
#define		UPIO_MDSR	0x048	// Multi-driver Status Register
#define		UPIO_ECR	0x050	// Enable Clock Register
#define		UPIO_DCR	0x054	// Disable Clock Register
#define		UPIO_PMSR	0x058	// Power Management Status Register
#define		UPIO_CR		0x060	// Control Register
#define		UPIO_MR		0x064	// Mode Register
#define		UPIO_SR		0x070	// Status Register
#define		PIO_IER		0x074	// Interrupt Enable Register
#define		PIO_IDR		0x078	// Interrupt Disable Register
#define		PIO_IMR		0x07C	// Interrupt Mask Register

//一些PIO寄存器设置的值
#define		UPIOEN0_7OUT	0x000000ff	//UPIO_0到7作为输出
#define		SJA_ALE		((unsigned int) 1 << 8)
#define		SJA_RD		((unsigned int) 1 << 9)
#define		SJA_WR		((unsigned int) 1 << 10)
#define		SJA_RST		((unsigned int) 1 << 11)
#define		SJA_CS0		((unsigned int) 1 << 12)
#define		SJA_CS1		((unsigned int) 1 << 13)

#define 	Address(base,offset)	(*(AT91_REG*)((base)+(offset)))

#define 	UPIO_CfgOutput(flag)	(Address(UPIO_BASE,UPIO_OER)=flag)
#define 	UPIO_Cfginput(flag)		(Address(UPIO_BASE,UPIO_ODR)=flag)
#define		UPIO_OutputStatus()		(Address(UPIO_BASE,UPIO_OSR))

#define		UPIO_SetOutput(flag)	(Address(UPIO_BASE,UPIO_SODR)=flag)
#define		UPIO_ClearOutput(flag)	(Address(UPIO_BASE,UPIO_CODR)=flag)
#define 	UPIO_OutputDataStatus()	(Address(UPIO_BASE,UPIO_PDSR))

#define 	UPIO_ClearOutputBit(bit)	UPIO_ClearOutput(bit)
#define 	UPIO_SetOutputBit(bit)		UPIO_SetOutput(bit)
//#define 	UPIO_SetOutputBit(bit)		UPIO_SetOutput((UPIO_OutputDataStatus()&(~bit))|bit)
//#define 	UPIO_OutputBitStatus(bit)	((UPIO_OutputDataStatus()&bit) >> bit)


#define	CS0_H()		UPIO_SetOutputBit(SJA_CS0)
#define	CS0_L()		UPIO_ClearOutputBit(SJA_CS0)
#define	CS1_H()		UPIO_SetOutputBit(SJA_CS1)
#define	CS1_L()		UPIO_ClearOutputBit(SJA_CS1)
#define	RD_H()		UPIO_SetOutputBit(SJA_RD)
#define	RD_L()		UPIO_ClearOutputBit(SJA_RD)
#define	WR_H()		UPIO_SetOutputBit(SJA_WR)
#define	WR_L()		UPIO_ClearOutputBit(SJA_WR)
#define	RST_H()		UPIO_SetOutputBit(SJA_RST)
#define	RST_L()		UPIO_ClearOutputBit(SJA_RST)
#define	ALE_H()		UPIO_SetOutputBit(SJA_ALE)
#define	ALE_L()		UPIO_ClearOutputBit(SJA_ALE)


void InitSJAPio( void );
void UPIO_SetData(unsigned char Data);
void UPIO_GetData(unsigned char *Data);

#endif	/* UPIO_H */

⌨️ 快捷键说明

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