mille-feuille board base MCU program

Dependencies:   mbed

Committer:
Info
Date:
Tue Sep 06 04:42:04 2022 +0000
Revision:
0:9dc31a0e43ac
open

Who changed what in which revision?

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