№ 8349 В разделах: Electronics
ESP8266
Programming
от July 8th, 2017,
В подшивках: EEPROM, ESP8266
Решил тряхнуть стариной со второй купленой отладочной платой с ESP8266 и что-нить запрогать. Под руку попалась ППЗУ от Atmel на целый 1 кБайт 🙂 Поскольку код особо писать не хотелось была найдена библиотечка. У автора возникла проблема с точно такой же микросхемой как у меня. После быстрого просмотра кода стало понятно, что используется 16 битная адресация, которая есть только на более объемных моделях типа 24LC256. Всего несколько строчек изменено и вот уже работает 8 битная адресация 🙂 В writeEEPROM
и readEEPROM
закомментировал 2 строки со смещением и засылом байтов и просто написал свою строку с 8 битным адресом.
void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data ) { Wire.beginTransmission(deviceaddress); //Wire.write((int)(eeaddress >> 8)); // MSB //Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.write((int)(eeaddress)); //only for 8 bit addressing Wire.write(data); Wire.endTransmission(); delay(5); } byte readEEPROM(int deviceaddress, unsigned int eeaddress ) { byte rdata = 0xFF; Wire.beginTransmission(deviceaddress); //Wire.write((int)(eeaddress >> 8)); // MSB //Wire.write((int)(eeaddress & 0xFF)); // LSB Wire.write((int)(eeaddress)); //only for 8 bit addressing Wire.endTransmission(); Wire.requestFrom(deviceaddress,1); if (Wire.available()) rdata = Wire.read(); return rdata; } void setup() { EEPROMAddress = 0; // EEPROM word variable EEPROMValue = 120; // EEPROM value Serial.print("EEPROMAddress: "); Serial.print(EEPROMAddress); Serial.print(", EEPROMValue: "); Serial.print(EEPROMValue); Serial.print(", EEPROMBank: 0x"); Serial.println(EEPROMBank,HEX); writeEEPROM(EEPROMBank, EEPROMAddress, byte(EEPROMValue)); for (EEPROMAddress = 0; EEPROMAddress < 3; EEPROMAddress++) { Serial.print("EEPROMAddress: "); Serial.print(EEPROMAddress); Serial.print(", Value: "); Serial.println(readEEPROM(EEPROMBank, EEPROMAddress), DEC); } }
Исходник https://git.blindage.org/21h/esp8266-eeprom
Fortune cookie: I wouldn't fuck her with your prick.
Leave a Reply