?? upio.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() (*(unsigned int*)(UPIO_BASE+UPIO_SODR) = SJA_CS0)
//#define CS0_L() (*(unsigned int*)(UPIO_BASE+UPIO_CODR) = SJA_CS0)
#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 + -