EEPROM 24LC01 libraly

Committer:
Info
Date:
Sat Jul 29 13:09:33 2017 +0000
Revision:
0:9937013783de
EEPROM libraly for mille-feuille device boards.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Info 0:9937013783de 1 /*
Info 0:9937013783de 2 ***************************************************************************
Info 0:9937013783de 3 * File Name : EEPROM24LC01.cpp
Info 0:9937013783de 4 *
Info 0:9937013783de 5 * Revision : 1.0
Info 0:9937013783de 6 * Notes :
Info 0:9937013783de 7 * Target Board : mbed LPC
Info 0:9937013783de 8 *
Info 0:9937013783de 9 * Revision History:
Info 0:9937013783de 10 ***************************************************************************
Info 0:9937013783de 11 */
Info 0:9937013783de 12 #include "EEPROM24LC01.h"
Info 0:9937013783de 13 #include "mbed.h"
Info 0:9937013783de 14
Info 0:9937013783de 15 EEPROM24LC01::EEPROM24LC01(I2C *i2c, const int address):
Info 0:9937013783de 16 _i2c_address(address<<1), _i2c(i2c)
Info 0:9937013783de 17 {
Info 0:9937013783de 18 }
Info 0:9937013783de 19
Info 0:9937013783de 20 int EEPROM24LC01::byte8_write(char *data)
Info 0:9937013783de 21 {
Info 0:9937013783de 22 int res;
Info 0:9937013783de 23 char buf[9];
Info 0:9937013783de 24 int i = 0;
Info 0:9937013783de 25
Info 0:9937013783de 26 buf[0] = 0; // Address
Info 0:9937013783de 27
Info 0:9937013783de 28 for(i=0;i<8;++i){
Info 0:9937013783de 29 buf[i+1] = data[i];
Info 0:9937013783de 30 }
Info 0:9937013783de 31 /* buf[1] = data[0];
Info 0:9937013783de 32 buf[2] = data[1];
Info 0:9937013783de 33 buf[3] = data[2];
Info 0:9937013783de 34 buf[4] = data[3];
Info 0:9937013783de 35 buf[5] = data[4];
Info 0:9937013783de 36 buf[6] = data[5];
Info 0:9937013783de 37 buf[7] = data[6];
Info 0:9937013783de 38 buf[8] = data[7];
Info 0:9937013783de 39 */
Info 0:9937013783de 40 res = _i2c->write(_i2c_address, buf, sizeof(buf), false);
Info 0:9937013783de 41
Info 0:9937013783de 42 wait_ms(5); // 5mS
Info 0:9937013783de 43
Info 0:9937013783de 44 return res;
Info 0:9937013783de 45 }
Info 0:9937013783de 46
Info 0:9937013783de 47
Info 0:9937013783de 48 int EEPROM24LC01::readAll( char *data, int size )
Info 0:9937013783de 49 {
Info 0:9937013783de 50 int res;
Info 0:9937013783de 51 char buf[1];
Info 0:9937013783de 52
Info 0:9937013783de 53 buf[0] = 0; // Read Address High byte set
Info 0:9937013783de 54 res = _i2c->write(_i2c_address, buf, sizeof(buf), true);
Info 0:9937013783de 55 res = _i2c->read(_i2c_address, (char *)data, size, false);
Info 0:9937013783de 56
Info 0:9937013783de 57 return res;
Info 0:9937013783de 58 }