大体24fc1025用

Dependents:   NuMidi401 NuFM401

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers I2CEEPROM.cpp Source File

I2CEEPROM.cpp

00001 #include "I2CEEPROM.h"
00002 
00003 I2CEEPROM::I2CEEPROM(PinName sda, PinName scl, int address, int freq) : i2c(sda,scl) {
00004     i2c.frequency(freq);
00005     memadd = address;
00006 }
00007 
00008 void I2CEEPROM::write(int bank, unsigned short address, const char *data, int count) {
00009     char *bytes = new char[count+3];
00010     bytes[0] = 0xa1 | (bank << 3);
00011     bytes[1] = address >> 8;
00012     bytes[2] = address & 0xff;
00013     for(int i = 0; i < count; i++) bytes[i + 3]=data[i];
00014     i2c.start();
00015     i2c.write(memadd, bytes, count + 3);
00016     delete bytes;
00017 }
00018 
00019 void I2CEEPROM::read(int bank, unsigned short address, char *data, int count) {
00020     char *info = new char[3];
00021     info[0] = 0xa1 | (bank << 3);
00022     info[1] = address >> 8;
00023     info[2] = address & 0xff;
00024     i2c.start();
00025     i2c.write(memadd, info, count + 3);
00026     for(int i = 0; i < count; i++) data[i]=i2c.read(i < (count - 1));
00027     delete info;
00028 }