cabanus (10.07.2005 21:07, просмотров: 1) ответил framer на Проблема I2C в LPC2138
Может поможет:) Помоему 1.4 build 5 тут непричем...
Писал для EEPROM все работает:
void i2c_start(UINT8 dev_addr)
{
I2C0CONCLR=I2CON_ALL;
I2C0CONSET=I2CON_I2EN|I2CON_STA;
while(!(I2C0CONSET&I2CON_SI));
I2C0DAT=dev_addr;
I2C0CONCLR=I2CON_SI|I2CON_STA;
while(!(I2C0CONSET&I2CON_SI));
}
void i2c_stop(void)
{
I2C0CONSET=I2CON_STO;
I2C0CONCLR=I2CON_SI;
}
void i2c_write(UINT8 data)
{
I2C0DAT=data;
I2C0CONCLR=I2CON_SI;
while(!(I2C0CONSET&I2CON_SI));
}
UINT8 i2c_read(UINT8 ack)
{
UINT8 temp;
I2C0CONCLR=I2CON_SI;
if(ack==ACK)
I2C0CONSET=I2CON_AA;
else
I2C0CONCLR=I2CON_AA;
while(!(I2C0CONSET&I2CON_SI));
temp=I2C0DAT;
return temp;
}