ZDBMS/header_drv/TwiIO.h

40 lines
915 B
C
Raw Normal View History

2025-02-06 07:35:32 +00:00
#ifndef _TWI_IO_H
#define _TWI_IO_H
//#define TWI_IO_OPERATE
#ifdef TWI_IO_OPERATE
//Define For I2C Driver
#define AFE_CHIP_ID (0x1B<<1) //AFE_ID
#define TRY_TIMES 5
#define RTC_REG_STATUS 0x07
#define SDA_BIT 0x10
#define SCL_BIT 0x20
#define SDA P0_4
#define SCL P0_5
#define TWI_CLK_OUT P0CR |= SCL_BIT;
#define TWI_CLK_IN P0CR &= ~SCL_BIT;
#define TWI_CLK_HIGH TWI_CLK_IN; SCL = 1;
#define TWI_CLK_LOW TWI_CLK_OUT; SCL = 0;
#define TWI_DAT_OUT P0CR |= SDA_BIT;
#define TWI_DAT_IN P0CR &= ~SDA_BIT;
#define TWI_DAT_HIGH TWI_DAT_IN; SDA = 1;
#define TWI_DAT_LOW TWI_DAT_OUT; SDA = 0;
#define TWI_RD_DAT SDA
#define TWI_RD_CLK SCL
extern void TwiInit(void);
extern BOOL TwiRead(U8 SlaveID, U16 RdAddr, U8 Length, U8 xdata *RdBuf);
extern BOOL TwiWrite(U8 SlaveID, U16 WrAddr, U8 Length, U8 xdata *WrBuf);
extern U8 CRC8cal(U8 *p, U8 counter);
#endif
#endif