#include "wire.h"
static uint8 i2cAddr;
void begin(uint8 address,i2cClock_t clockRate)
{
i2cAddr = address << 1;
I2C_WRAPPER_DISABLE();
I2CADDR = 0; // no multi master support at this time
I2C_CLOCK_RATE(clockRate);
I2C_ENABLE();
}
uint8 beginTransmission(void)
{
I2C_STRT();
if (I2CSTAT == mstStarted) /* A start condition has been transmitted */
{
I2C_WRITE(i2cAddr | 0x00);
}
//return I2CSTAT;
}
void endTransmission(void)
{
I2C_STOP();
}
uint8 requestFrom(void)
{
I2C_STRT();
if (I2CSTAT == mstStarted) /* A start condition has been transmitted */
{
I2C_WRITE(i2cAddr | 0x01);
}
return I2CSTAT;
}
uint8 read(uint8 is_ack)
{
uint8 data=0;
if (is_ack == 0)
{
I2C_SET_ACK();
}
else
{
I2C_SET_NACK();
}
I2C_READ(data);
return data;
}
void write(uint8 data)
{
I2C_WRITE(data);
}
评论1
最新资源