Arduino – obsługa EEPROM I2C
Poniżej prosty Sketch do obsługi eeprom i fram po i2c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// // #include <Wire.h> // biblioteka do obsługi i2c #define device_address 0x50 // adres eeprom void setup(void) { Serial.begin(9600); Wire.begin(); unsigned int address = 0; // adres komórki do zapisu // zapisz (adress eeprom, adres komórki, wartość) writeEEPROM(device_address, address, 123); // odczytaj z eeporom (adress eeprom, adres komórki) Serial.print(readEEPROM(device_address, address), DEC); } void loop(){} void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data ) { Wire.beginTransmission(deviceaddress); Wire.send((int)(eeaddress >> 8)); // MSB Wire.send((int)(eeaddress & 0xFF)); // LSB Wire.send(data); Wire.endTransmission(); delay(5); } byte readEEPROM(int deviceaddress, unsigned int eeaddress ) { byte rdata = 0xFF; Wire.beginTransmission(deviceaddress); Wire.send((int)(eeaddress >> 8)); // MSB Wire.send((int)(eeaddress & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(deviceaddress,1); if (Wire.available()) rdata = Wire.receive(); return rdata; } |