Dependents:   esclavo_maestro

eeprom.cpp

Committer:
alejo5214416
Date:
2018-07-27
Revision:
1:837719ffa1dc
Parent:
0:7c54b267cbd3
Child:
2:4fd30af0937d

File content as of revision 1:837719ffa1dc:

// 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)
{
    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 -1;//NACK
    } else if(ack==2) {
        return 0;//TIMEOUT
    }return 2;
}


uint8_t data_read(uint8_t eepr_addr, uint16_t address_read)
{
    uint8_t read;
    i2c.start();
    int ack=i2c.write(eepr_addr<<1);
    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;
}