--------------------------------------------------------------------------------
附程序,请高人指点米经
//i2c.h
#include <iom128v.h>
#include <macros.h>
#define ZLG7290_I2C_ADDR 0x70
#define NS 42
unsigned CHAR I2cWrite(unsigned CHAR *buf,unsigned CHAR num,unsigned CHAR RomAddress);
unsigned CHAR I2cRead(unsigned CHAR *buf,unsigned CHAR num,unsigned CHAR RomAddress);
//i2c.c
#define IIC_SDA 0x08 //定义 SDA 管脚 PE3
#define IIC_SCL 0x10 //定义 SCL 管脚 PE4
#define IIC_PIN PINE //定义端口
#define IIC_PORT PORTE
#define IIC_DDR DDRE
#define SET_SDA IIC_PORT |= IIC_SDA //SDA 高 输出用
#define CLR_SDA IIC_PORT &= ~IIC_SDA //SDA 低 输出用
#define SET_SCL IIC_PORT |= IIC_SCL //SCL 高 输出用
#define CLR_SCL IIC_PORT &= ~IIC_SCL //SCL 低 输出用
#define SCL_OUT IIC_DDR |= IIC_SCL //SCL 作输出
#define SDA_OUT IIC_DDR |= IIC_SDA //SDA 作输出
#define SDA_IN IIC_DDR &= ~IIC_SDA //SDA 作输入
void NOPS(unsigned int i)
{
do
{
NOP();
}while(--i!=0);
}
void I2cStart(void)
{
SDA_OUT;
SCL_OUT;
评论0