Dependents:
esclavo_maestro
eeprom.cpp
- Committer:
- alejo5214416
- Date:
- 2018-07-30
- Revision:
- 3:770d884b04c4
- Parent:
- 2:4fd30af0937d
- Child:
- 4:1dd37cb61e2f
File content as of revision 3:770d884b04c4:
// eeprom.cpp file
#include "eeprom.h"
void freq(uint32_t frec)
{
i2c.frequency(frec);
}
int write_data(uint8_t eepr_addr, uint16_t address, uint8_t *ptr_string)
{
wait_ms(4);
i2c.start();
int ack=i2c.write(eepr_addr<<1);
if(ack==1) {
i2c.write(address<<8);
i2c.write(address);
int i=0;
while(ptr_string[i]!=NULL) {
i2c.write(ptr_string[i]);
i++;
}
i2c.stop();
return 1;//success
} else if(ack==0) {
return 0;//NACK
} else if(ack==2) {
return 2;//TIMEOUT
}
return -1;
}
uint8_t data_read(uint8_t eepr_addr, uint16_t address_read)
{
wait_ms(4);
uint8_t read;
i2c.start();
int ack=i2c.write(eepr_addr<<1);
pc.printf("ack= %d \n",ack);
if(ack==1) {
i2c.write(address_read<<8);
i2c.write(address_read);
i2c.start();
i2c.write(eepr_addr<<1|0x01);
read=i2c.read(0);
i2c.stop();
return read;
}
return -1;
}