mille-feuille module MCU program

Dependencies:   mbed

Committer:
Info
Date:
Tue Sep 06 04:45:08 2022 +0000
Revision:
0:98ed24be8501
open

Who changed what in which revision?

UserRevisionLine numberNew 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 }