.,

Dependents:   esclavo_maestro

eeprom.cpp

Committer:
alejo5214416
Date:
2018-07-31
Revision:
5:790c023a3fe2
Parent:
4:1dd37cb61e2f
Child:
6:09a5710f6b7c

File content as of revision 5:790c023a3fe2:

// 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(2);
    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(2);
    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;
}