?? iic.h
字號:
/***********************************************************文件名:iic.h i2c函數庫頭文件功能:i2c數據結構的定義和函數的定義版本:version 1.0完成日期:2004.7.18***********************************************************/#ifndef _IIC_H_#define _IIC_H_#define SYS_BASE 0x03ff0000#define SRAM_BASE 0x03fe0000#define IO_BASE 0x03600000#define IOPMOD *((volatile unsigned*)(SYS_BASE+0x5000))#define IOPCON *((volatile unsigned*)(SYS_BASE+0x5004))#define IOPDATA *((volatile unsigned*)(SYS_BASE+0x5008))/********************//* I2C Bus Register *//********************/#define IICCON *((volatile unsigned*)(SYS_BASE+0xf000))#define IICBUF *((volatile unsigned*)(SYS_BASE+0xf004))#define IICPS *((volatile unsigned*)(SYS_BASE+0xf008))#define IICCOUNT *((volatile unsigned*)(SYS_Baser+0xf00c))#define BF 0x01 //Buffer flag#define IEN 0x02 //Interrupt enable#define LRB 0x04 //Last bit received //ACK not received#define ACK 0x08 //Acknowlege enable //Generate an ACK signal at 9th SCL#define NOACK 0x00 //No more received data is required //from the slave#define START 0x10#define STOP 0x20#define RESTART 0x30#define BUSY 0x40#define IICRESET 0x80 //Reset the IIC-BUS controller#define IIC_DEV_0 0xa0 //IIC device's slave address#define S_WRITE 0x00 //Write IIC data for slave#define S_READ 0x01 //Read IIC data for slave/* Byte Slave transmitter and receive status flags */#define iic_slave_addr 0x01 /* slave addr flag */#define iic_byte_addr_msb 0x02 /* byte msb addr */#define iic_byte_addr_lsb 0x04 /* byte lsb addr */#define iic_page_tx_done 0x08 /* Page data transmit done */#define iic_byte_rx_done 0x10 /* byte data receive done */#define iic_repeat_start 0x20 /* flag for repeat start */#define iic_multi_recv 0x40 /* recv multiple data */#define iic_no_more_recv 0x80 /* no more recv from slave */#define S8 signed char#define S16 signed short#define S32 signed long#define U8 unsigned char#define U16 unsigned short#define U32 unsigned long#define REG8 volatile unsigned char#define REG16 volatile unsigned short#define REG32 volatile unsigned long#define BYTE U8#define MHz 1000000#define fMCLK 50*MHz #define MCLK2 (fMCLK/2)#define fSCL 400000 /* IIC Serial clock frequency */#define SizeOfPage 64#define StorageSize ((64*1024)/8)/* Data structure for multiple byte slave transmitter format */#define Write_Cycle_ms(x) (x*0.001*fMCLK-1) typedef struct { volatile U32 FLAG; volatile U32 BuffByteCnt; /* Page buffer byte counter */ volatile U32 WriteDataSize; /* Page buffer byte counter */ volatile U8 SLAVE_ADDR; /* Slave address */ volatile U8 BYTE_ADDR_MSB; /* Byte MSB address */ volatile U8 BYTE_ADDR_LSB; /* Byte LSB address */ volatile U8 PAGE_BUFFER[SizeOfPage+1]; /* IIC Page data buffer */} IIC_DATA_TX_FORMAT;typedef struct { volatile U32 FLAG; volatile U32 ByteReadCnt; volatile U32 ReadDataSize; volatile U8 SLAVE_ADDR; volatile U8 BYTE_ADDR_MSB; volatile U8 BYTE_ADDR_LSB; volatile U8 *RCV_BUFFER;} IIC_DATA_RX_FORMAT;/*=====================================================================*//* IIC SETUP ROUTINES (iic.c) *//*=====================================================================*/extern int SetPreScaler(int sclk);extern void IicSetup(void);extern void IICReadTest(void);/*=====================================================================*//* IIC LIBRARY FUNCTIONS FOR IIC READ & WRITE *//*=====================================================================*/extern void IICWriteInt(U8 SlaveAddr,U16 WriteAddr,U8 *data,U32 SizeOfData);extern void *IICReadInt(U8 SlaveAddr,U16 ReadAddr,U32 SizeOfData);#endif /* end of the IIC header file */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -