mille feuille
/
milmod_slaveRevF
mille-feuille module MCU program
EEPROM24LC01.cpp@0:98ed24be8501, 2022-09-06 (annotated)
- Committer:
- Info
- Date:
- Tue Sep 06 04:45:08 2022 +0000
- Revision:
- 0:98ed24be8501
open
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Info | 0:98ed24be8501 | 1 | /* |
Info | 0:98ed24be8501 | 2 | *************************************************************************** |
Info | 0:98ed24be8501 | 3 | * File Name : EEPROM24LC01.cpp |
Info | 0:98ed24be8501 | 4 | * |
Info | 0:98ed24be8501 | 5 | * Revision : 1.0 |
Info | 0:98ed24be8501 | 6 | * Notes : |
Info | 0:98ed24be8501 | 7 | * Target Board : mbed LPC824 |
Info | 0:98ed24be8501 | 8 | * |
Info | 0:98ed24be8501 | 9 | * Revision History: |
Info | 0:98ed24be8501 | 10 | *************************************************************************** |
Info | 0:98ed24be8501 | 11 | */ |
Info | 0:98ed24be8501 | 12 | #include "EEPROM24LC01.h" |
Info | 0:98ed24be8501 | 13 | #include "mbed.h" |
Info | 0:98ed24be8501 | 14 | |
Info | 0:98ed24be8501 | 15 | EEPROM24LC01::EEPROM24LC01(I2C *i2c, const int address): |
Info | 0:98ed24be8501 | 16 | _i2c_address(address<<1), _i2c(i2c) |
Info | 0:98ed24be8501 | 17 | { |
Info | 0:98ed24be8501 | 18 | } |
Info | 0:98ed24be8501 | 19 | |
Info | 0:98ed24be8501 | 20 | int EEPROM24LC01::byte8_write(char *data) |
Info | 0:98ed24be8501 | 21 | { |
Info | 0:98ed24be8501 | 22 | int res; |
Info | 0:98ed24be8501 | 23 | char buf[9]; |
Info | 0:98ed24be8501 | 24 | int i = 0; |
Info | 0:98ed24be8501 | 25 | |
Info | 0:98ed24be8501 | 26 | buf[0] = 0; // Address |
Info | 0:98ed24be8501 | 27 | |
Info | 0:98ed24be8501 | 28 | for(i=0;i<8;++i){ |
Info | 0:98ed24be8501 | 29 | buf[i+1] = data[i]; |
Info | 0:98ed24be8501 | 30 | } |
Info | 0:98ed24be8501 | 31 | /* buf[1] = data[0]; |
Info | 0:98ed24be8501 | 32 | buf[2] = data[1]; |
Info | 0:98ed24be8501 | 33 | buf[3] = data[2]; |
Info | 0:98ed24be8501 | 34 | buf[4] = data[3]; |
Info | 0:98ed24be8501 | 35 | buf[5] = data[4]; |
Info | 0:98ed24be8501 | 36 | buf[6] = data[5]; |
Info | 0:98ed24be8501 | 37 | buf[7] = data[6]; |
Info | 0:98ed24be8501 | 38 | buf[8] = data[7]; |
Info | 0:98ed24be8501 | 39 | */ |
Info | 0:98ed24be8501 | 40 | res = _i2c->write(_i2c_address, buf, sizeof(buf), false); |
Info | 0:98ed24be8501 | 41 | |
Info | 0:98ed24be8501 | 42 | wait_ms(5); // 5mS |
Info | 0:98ed24be8501 | 43 | |
Info | 0:98ed24be8501 | 44 | return res; |
Info | 0:98ed24be8501 | 45 | } |
Info | 0:98ed24be8501 | 46 | |
Info | 0:98ed24be8501 | 47 | |
Info | 0:98ed24be8501 | 48 | int EEPROM24LC01::readAll( char *data, int size ) |
Info | 0:98ed24be8501 | 49 | { |
Info | 0:98ed24be8501 | 50 | int res; |
Info | 0:98ed24be8501 | 51 | char buf[1]; |
Info | 0:98ed24be8501 | 52 | |
Info | 0:98ed24be8501 | 53 | buf[0] = 0; // Read Address High byte set |
Info | 0:98ed24be8501 | 54 | res = _i2c->write(_i2c_address, buf, sizeof(buf), true); |
Info | 0:98ed24be8501 | 55 | res = _i2c->read(_i2c_address, (char *)data, size, false); |
Info | 0:98ed24be8501 | 56 | |
Info | 0:98ed24be8501 | 57 | return res; |
Info | 0:98ed24be8501 | 58 | } |