Cell voltages fork (SoC)

Dependencies:   CUER_CAN CUER_DS1820 LTC2943 LTC6804 mbed PowerControl

EEPROM_I2C.cpp

Committer:
DasSidG
Date:
2017-09-16
Revision:
66:c884fba9eaea
Parent:
33:44b241c7b2c1

File content as of revision 66:c884fba9eaea:

#include "EEPROM_I2C.h"

I2C i2c(I2C_DATA, I2C_CLOCK);

/* Dont think this will be used
// Write individual byte
void i2c_write(int start_address,char data_out){

    char data[3];
    data[0] = start_address;
    data[1] = start_address;
    data[2] = data_out;
    i2c.write(ADDRESS_1, data, 3, false);
}
 */
// Read individual byte
/* Dont think this will be used
char i2c_read(int start_address){
    char cmd[3];
    cmd[0] = start_address;
    cmd[1] = start_address;
    i2c.write(ADDRESS_1, cmd, 2, true);

    char data_out;
    i2c.read(ADDRESS_1, &data_out, 1, false);
    return data_out;
}
 */
// Page write
void i2c_page_write(uint16_t start_address,int length, char data_out[] )
{
    char cmd[2+length];
    cmd[0] = (start_address >> 8) & 0x00FF;
    cmd[1] = start_address & 0x00FF; 
    for(int  i = 0; i< length ; i++) {
        cmd[i+2] = data_out[i];
    }

    i2c.write(ADDRESS_1, cmd, length + 2, false);
}
// Page read. Wait 10 milliseconds after a write at least before reading.
void i2c_page_read(uint16_t start_address, int length, char data_in[])
{
    char cmd[2];
    cmd[0] = (start_address >> 8) & 0x00FF;
    cmd[1] = start_address & 0x00FF; //Same comment as for write
    i2c.write(ADDRESS_1, cmd, 2, true);
    wait_us(10);
    i2c.read(ADDRESS_1, data_in, length, false);
}