i2c interface eeprom
Dependencies: mbed
main.cpp
- Committer:
- soulx
- Date:
- 2015-11-02
- Revision:
- 1:b2b38e1e4d0c
- Parent:
- 0:b5986cc5eebd
File content as of revision 1:b2b38e1e4d0c:
#include "mbed.h" I2C i2c(I2C_SDA, I2C_SCL); const int addr = 0xA0; int main() { char cmd[6]; int len=3; char data[1]; int ack; i2c.frequency(100000); //address in eeprom cmd[0] = 0x00; cmd[1] = 0x01; //data for write to eeprom cmd[2] ='c'; //sent data i2c FIGURE 4-1 ack = i2c.write((int)addr,(char *)cmd,len); //wait for write to memory wait_ms(5); //read data i2c FIGURE 6-2 ack = i2c.write((int)addr,(char *)cmd,len-1,true); //read data i2c ack = i2c.read((int)addr,(char *)&data,sizeof(data)); printf("Temp1 = %c\n", data[0]); cmd[2] ='X'; ack = i2c.write((int)addr,(char *)cmd,len); //i2c.write(addr, cmd, 2); wait_ms(5); ack = i2c.write((int)addr+1,(char *)cmd,len-1,true); ack = i2c.read((int)addr,(char *)&data,sizeof(data)); printf("Temp2 = %c\n\n", data[0]); //wait_us(100); /* cmd[0] = 0x00; i2c.write(addr, cmd, 1); i2c.read(addr, cmd, 6); */ // float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0); // printf("Temp = %s\n", cmd); //} }