📄 sndsiic.h
字号:
/* sndsIIC.h - header file for SNDS IIC driver */
#ifndef __INCsndsIICh
#define __INCsndsIICh
#include "vxWorks.h"
#include "types\vxTypesBase.h"
#include "types\vxTypes.h"
#include "iv.h"
#include "intLib.h"
#include "sysLib.h"
#include "taskLib.h"
#include "semLib.h"
#include "snds100.h"
#define EEPROM_PAGE_SIZE 32
#define EEPROM_MAX_SIZE 8192
#define SCLK 50000
/* device and channel structures */
typedef struct iic_drv_funcs IIC_DRV_FUNCS;
typedef struct
{
UINT8 slaveAddress;
UINT8 writeAddrMSB;
UINT8 writeAddrLSB;
UINT32 dataSize;
UINT8 pageBuff [EEPROM_PAGE_SIZE];
UINT32 byteWriteCount;
UINT32 totalBytesWritten;
UINT8 flag;
SEM_ID endofWriteSemID;
} IIC_TXMIT;
typedef struct
{
UINT8 slaveAddress;
UINT8 readAddrMSB;
UINT8 readAddrLSB;
UINT32 dataSize;
UINT8 *rxBuff;
UINT32 byteReadCount;
UINT32 totalBytesRead;
UINT8 flag;
SEM_ID endofReadSemID;
} IIC_RCV;
typedef struct
{
/* register addresses */
volatile UINT32 *iiccon;
volatile UINT32 *iicbuf;
volatile UINT32 *iicps;
volatile UINT32 *iiccnt;
/* misc */
IIC_TXMIT IIC_Txmit;
IIC_RCV IIC_Rcv;
SEM_ID IICSemID;
int int_vec;
int sclk;
} SNDS_IIC;
/* definitions */
/*Reset values for Registers*/
#define SNDS_IIC_RESET_IICCON 0x0080
#define SNDS_IIC_IEN 0x2
#define SNDS_IIC_NOIEN 0x0
#define SNDS_IIC_ACK 0x8
#define SNDS_IIC_NOACK 0x0
#define SNDS_IIC_ISBUSY 0x40
#define SNDS_IIC_START 0x10
#define SNDS_IIC_STOP 0x20
#define SNDS_IIC_REPEAT_START 0x30
#define IIC_TX_BYTE_ADDR_MSB 0x01
#define IIC_TX_BYTE_ADDR_LSB 0x02
#define IIC_RX_BYTE_ADDR_MSB 0x01
#define IIC_RX_BYTE_ADDR_LSB 0x02
#define IIC_REPEAT_START 0x04
#define IIC_MULTI_RCV 0x08
#define EEPROM_BOOTLINE_ADDR 0
#define EEPROM_SLAVE_ADDR 0xA0
#define S_WRITE 0xFFFFFFFE
#define S_READ 0x01
#define SET_PRE_SCALER 01
/* Macro Defns. */
#define SNDS_IIC_REG_READ(reg, result) \
result = *((UINT32 *)sndsIIC.reg)
#define SNDS_IIC_REG_WRITE(reg, data) \
*((UINT32 *)sndsIIC.reg) = data
/* function prototypes */
#if defined(__STDC__)
void sndsIICDevInit();
void sndsIICDevInit2();
STATUS sndsIICWrite(UINT8 slaveAddr,UINT16 WriteAddr,UINT8 *data, UINT32 SizeOfData);
STATUS sndsIICRead(UINT8 slaveAddr,UINT16 ReadAddr, UINT8 *pBuff, UINT32 SizeOfData);
STATUS sndsIICPagwiseRead(UINT8 slaveAddr,UINT16 ReadAddr, UINT8 *pBuff, UINT32 SizeOfData);
STATUS sndsIICIoctl(UINT32 cmd, void* arg);
#endif /* __STDC__ */
#endif /* __INCsndsIICh */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -