AT24C1024の機能を簡単に使えるようにするライブラリー
at24c1024b.cpp
- Committer:
- r113330akki
- Date:
- 2017-12-13
- Revision:
- 3:8957e88b3334
- Parent:
- 1:3d1e7763c6f5
File content as of revision 3:8957e88b3334:
#include "at24c1024b.h" AT24C1024B::AT24C1024B(PinName sda, PinName scl, int addr) : SDA(sda), SCL(scl), i2c(sda, scl) { } AT24C1024B::AT24C1024B(PinName sda, PinName scl) : SDA(sda), SCL(scl), i2c(sda, scl) { } AT24C1024B::AT24C1024B(PinName sda, PinName scl) : SDA(sda), SCL(scl), i2c(sda, scl) { } AT24C1024B::AT24C1024B(PinName sda, PinName scl) : SDA(sda), SCL(scl), i2c(sda, scl) { } int AT24C1024B::write(int addr, int page, char data) { char array[1]=data; int buff; buff = write(addr, page, array, 1); return buff; } int AT24C1024B::write(int addr, int page, char *data, int length) { char buffCommand[2]; if(length<1) { return -1; } buffCommand[0]=(char)addr&0xff00;//上位8ビットを代入 buffCommand[1]=(char)addr&0x00ff;//下位8ビットを代入 i2c.write(AT24C1024B_ADDRESS,buffCommand,2,true);//次の書き込み命令と同時に送信 i2c.write(AT24C1024B_ADDRESS,data,length); wait(0.005); } int read(int addr, int page) { char array[1]=data; read(addr, page, array, 1); return array[0]; } int AT24C1024B::read(int addr, int page, char *data, int length) { char buffCommand[2]; if(length<1) { return -1; } buffCommand[0]=(char)addr&0xff00;//上位8ビットを代入 buffCommand[1]=(char)addr&0x00ff;//下位8ビットを代入 i2c.write(AT24C1024B_ADDRESS,buffCommand,2); i2c.read(AT24C1024B_ADDRESS,data,length); return 0; }