大体24fc1025用

Dependents:   NuMidi401 NuFM401

Committer:
kb10uy
Date:
Sun Dec 28 04:02:46 2014 +0000
Revision:
0:b8909823d506
initial commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kb10uy 0:b8909823d506 1 #include "I2CEEPROM.h"
kb10uy 0:b8909823d506 2
kb10uy 0:b8909823d506 3 I2CEEPROM::I2CEEPROM(PinName sda, PinName scl, int address, int freq) : i2c(sda,scl) {
kb10uy 0:b8909823d506 4 i2c.frequency(freq);
kb10uy 0:b8909823d506 5 memadd = address;
kb10uy 0:b8909823d506 6 }
kb10uy 0:b8909823d506 7
kb10uy 0:b8909823d506 8 void I2CEEPROM::write(int bank, unsigned short address, const char *data, int count) {
kb10uy 0:b8909823d506 9 char *bytes = new char[count+3];
kb10uy 0:b8909823d506 10 bytes[0] = 0xa1 | (bank << 3);
kb10uy 0:b8909823d506 11 bytes[1] = address >> 8;
kb10uy 0:b8909823d506 12 bytes[2] = address & 0xff;
kb10uy 0:b8909823d506 13 for(int i = 0; i < count; i++) bytes[i + 3]=data[i];
kb10uy 0:b8909823d506 14 i2c.start();
kb10uy 0:b8909823d506 15 i2c.write(memadd, bytes, count + 3);
kb10uy 0:b8909823d506 16 delete bytes;
kb10uy 0:b8909823d506 17 }
kb10uy 0:b8909823d506 18
kb10uy 0:b8909823d506 19 void I2CEEPROM::read(int bank, unsigned short address, char *data, int count) {
kb10uy 0:b8909823d506 20 char *info = new char[3];
kb10uy 0:b8909823d506 21 info[0] = 0xa1 | (bank << 3);
kb10uy 0:b8909823d506 22 info[1] = address >> 8;
kb10uy 0:b8909823d506 23 info[2] = address & 0xff;
kb10uy 0:b8909823d506 24 i2c.start();
kb10uy 0:b8909823d506 25 i2c.write(memadd, info, count + 3);
kb10uy 0:b8909823d506 26 for(int i = 0; i < count; i++) data[i]=i2c.read(i < (count - 1));
kb10uy 0:b8909823d506 27 delete info;
kb10uy 0:b8909823d506 28 }