Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: IZU2020_AVIONICS IZU2020_POST_PROCESS IZU2020_AVIONICS
PQEEPROM.cpp
00001 #include "mbed.h" 00002 #include "PQEEPROM.h" 00003 00004 EEPROM::EEPROM (I2C &i2c) 00005 { 00006 _i2c = &i2c; 00007 _i2c -> frequency(400000); 00008 } 00009 00010 void EEPROM::write(int addr, char *data, int size) 00011 { 00012 char B0 = (addr >> 16) & 0x01; 00013 char A0 = (addr >> 17) & 0x01; 00014 char A1 = (addr >> 18) & 0x01; 00015 _addr = 0b10100000 | B0 << 3 | A1 << 2 | A0 << 1; 00016 00017 if(size > 128) { 00018 size = 128; 00019 } 00020 cmd[0] = (addr >> 8) & 0xFF; 00021 cmd[1] = addr & 0xFF; 00022 for(int i = 0; i < size; i++) { 00023 cmd[2 + i] = data[i]; 00024 } 00025 _i2c -> write(_addr, cmd, 2 + size); 00026 00027 wait_ms(3); 00028 } 00029 00030 void EEPROM::read(int addr, char *data, int size) 00031 { 00032 char B0 = (addr >> 16) & 0x01; 00033 char A0 = (addr >> 17) & 0x01; 00034 char A1 = (addr >> 18) & 0x01; 00035 _addr = 0b10100000 | B0 << 3 | A1 << 2 | A0 << 1; 00036 00037 cmd[0] = (addr >> 8) & 0xFF; 00038 cmd[1] = addr & 0xFF; 00039 00040 _i2c -> write(_addr, cmd, 2); 00041 _i2c -> read(_addr, buff, size); 00042 00043 for(int i = 0; i < size; i++) { 00044 data[i] = buff[i]; 00045 } 00046 }
Generated on Fri Jul 29 2022 19:49:12 by
1.7.2