EEPROM 24LC01 libraly
EEPROM24LC01.cpp@0:9937013783de, 2017-07-29 (annotated)
- 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?
User | Revision | Line number | New 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 | } |