Code Monkey home page Code Monkey logo

arduino-eepromex's People

Contributors

bdeeming avatar friedcircuits avatar gandy92 avatar ivankravets avatar marcelrv avatar paulstoffregen avatar per1234 avatar thijse avatar tvcsantos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduino-eepromex's Issues

wrong indentation or missing bracket?

in file: EEPROMex.cpp
in function:
void EEPROMClassEx::setMemPool(int base, int memSize) {
//Base can only be adjusted if no addresses have already been issued
if (_nextAvailableaddress == _base)
_base = base;
_nextAvailableaddress=_base; //<- this is outside if conditional statement: is right?

ESP8266 avr/eeprom.h library issue

I was wondering if it was possible to solve this issue of using the EEPROMex library with an ESP8266 device (such as node MCU) when I try to compile the code I get an error saying Avr/EEPROM.h no such file in the directory and I did a bit of research which said that this library cannot be used with ESP32 devices (I'm not sure if that is the same for ESP8266 I'm assuming it is) so if there is a fix or a change I could make to make the code work for my node MCU it would be a great help, thanks.

Update Double uses write

I was reading though the code and line 311 does a write instead of an update.

bool EEPROMClassEx::updateDouble(int address, double value)
{
return (writeBlock(address, value)!=0);
}

Making things more compatible

Can you change:

EEPROMClassEx EEPROM;

to something like:

EEPROMClassEx EEPROMEx;

EEPROMEx.h is not a drop in replacement for EEPROM.h as it doesn't have indexers and length function for instance.

Not able to Locate EEPROM.h file

C:\Program Files (x86)\Arduino\libraries\EEPROMex/EEPROMex.h:23:20: fatal error: EEPROM.h: No such file or directory
#include <EEPROM.h>
^
compilation terminated.
Error compiling.

If I include EEPROM in main Code I get this problem.. I am using Arduino 1.6.3

C:\Program Files (x86)\Arduino\libraries\EEPROMex/EEPROMVar.h:1:22: fatal error: WProgram.h: No such file or directory
#include <WProgram.h>
^
compilation terminated.
Error compiling.

Doesn't write properly sometimes

Hey guys,
I'm using this library in a project and figured out that it doesn't always save data to EEPROM properly.
In general this library works great, but sometimes there's no write/update made where it should.

In my project I'm using the following librarys:
sdelay.h
Wire.h
OneWire.h
DallasTemperature.h
LiquidCrystal_I2C.h
EEPROMex.h
Time.h
DS1307RTC.h

How can I figure out which version of EEPROMex I'm using?
My EEPROMex-folder is named "EEPROMEx-9.1"...but I can't remember if this was the default folder name or I changed it.

easy to expect setMaxAllowedWrites to work when _EEPROMEX_DEBUG is not set

After reading the documentation for this library (both the README, and https://playground.arduino.cc/Code/EEPROMex/), I was at first under the misapprehension that setMaxAllowedWrites set a limit even when _EEPROMEX_DEBUG was not set. But that's wrong, as I later learned by reading the code; only when _EEPROMEX_DEBUG is set does it do anything. It would be easy to make this mistake and harm your hardware.

The only places that mention this, that I've found (now that I know what to look for) are some of the examples which mention that "More writes will only give errors when _EEPROMEX_DEBUG is set"

It would be good to at least mention _EEPROMEX_DEBUG where the documentation talks about setMaxAllowedWrites.

I think it would be a good idea to change the code to warn when setMaxAllowedWrites is used and _EEPROMEX_DEBUG is not set.

void EEPROMClassEx::setMaxAllowedWrites(int allowedWrites) {
#ifdef _EEPROMEX_DEBUG
	_allowedWrites = allowedWrites;
#else
    #warning "setMaxAllowedWrites has no effect since _EEPROMEX_DEBUG is not set"
#endif
}

problem with ATtiny3217

Beste Thijse,
I have troubles using the ATtiny3217
https://github.com/SpenceKonde/megaTinyCore

The error is:
'NVM_STATUS' was not declared in this scope

Note that the standard Arduino library EEPROM.h still works fine on the ATtiny3217, see this sketch:

#include <EEPROM.h>  
void setup() 
{ Serial.begin(9600);
  while(!Serial);
  float f = 123.456f;  
  int eeAddress = 0;   
  EEPROM.put(eeAddress, f);
  EEPROM.get(eeAddress, f);
  Serial.println(f, 3);   
}
void loop() 
{
}

So, I think it is not a big compatiblity issue.

I have looked for a solution, but I don’t have enough knowledge of the Arduino platform.
Maybe you can talk to Spence Konde what to do.

Inconsistent value from readLong, always higher by 768??

Probably something really dumb going on here, but I'm stumped

I've got the same setup as the examples

 EEPROM.setMemPool(memBase, EEPROMSizeUno);
 EEPROM.setMaxAllowedWrites(maxAllowedWrites);

On button press I save said long value, then read the value in a different function on another button press.

When I write then read immediately, the value is returned as expected from readLong,

    
  Serial.println("writing delaytime value ");
  Serial.println(String(delayTime));//652
  EEPROM.writeLong(delayTimeAddr, delayTime);
  Serial.println("getting delaytime back"); //652
  Serial.println(EEPROM.readLong(delayTimeAddr));
  long read = EEPROM.readLong(delayTimeAddr)); //652

but once the readLong occurs in another or outer function, the value changes to a higher value by 768. 0b11 0000 0000.

  //outer function
  long read = EEPROM.readLong(delayTimeAddr)); //1420

This smells of a signed vs unsigned bit situation. Though I'm not sure, my cpp knowledge have long since passed me and am simply trying to save a larger value to memory.

Need a function to clear EEPROM Memory

Hi

I was thinking to clear memory using Update Function (Avoiding write cycle count in case same value).

Default value of EEPROM is 0xFF.

Only need to clear the range set by this function
EEPROM.setMemPool(memBase, EEPROMSizeUno);

or have some function to set a specific value on all use able memory selected by above function

Since I am new user of this library , I was doubtful that I would be able to make any better clear function that could do the job without violating library standards.

Purpose is to only read a set of variables when data is written for that set of variables.

I can clarify if objective is not understood.

Can be done?

Unable to compile

Arduino: 1.8.12 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h: In member function 'int EEPROMClassEx::readBlock(int, const T&)':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:121:71: error: there are no arguments to 'eeprom_read_block' that depend on a template parameter, so a declaration of 'eeprom_read_block' must be available [-fpermissive]

eeprom_read_block((void*)&value, (const void*)address, sizeof(value));

                                                                   ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:121:71: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h: In member function 'int EEPROMClassEx::writeBlock(int, const T&)':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:143:66: error: there are no arguments to 'eeprom_write_block' that depend on a template parameter, so a declaration of 'eeprom_write_block' must be available [-fpermissive]

eeprom_write_block((void*)&value, (void*)address, sizeof(value));

                                                              ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h: At global scope:

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:195:22: error: conflicting declaration 'EEPROMClassEx EEPROM'

extern EEPROMClassEx EEPROM;

                  ^

In file included from C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:29:0,

             from F:\Downloads 2019\Documents\Arduino\ota-jarvis-iot-home-may2020\ota-jarvis-iot-home-may2020.ino:1:

C:\Users\balra\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.1\libraries\EEPROM/EEPROM.h:77:20: error: 'EEPROM' has a previous declaration as 'EEPROMClass EEPROM'

extern EEPROMClass EEPROM;

                ^

In file included from F:\Downloads 2019\Documents\Arduino\ota-jarvis-iot-home-may2020\ota-jarvis-iot-home-may2020.ino:2:0:

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h: In constructor 'EEPROMVar::EEPROMVar(const T&)':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:32:18: error: 'class EEPROMClass' has no member named 'getAddress'

address(EEPROM.getAddress(sizeof(T)))

              ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h: In member function 'void EEPROMVar::save()':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:71:13: error: 'class EEPROMClass' has no member named 'writeBlock'

  EEPROM.writeBlock<T>(address, var);

         ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:71:25: error: expected primary-expression before '>' token

  EEPROM.writeBlock<T>(address, var);

                     ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h: In member function 'void EEPROMVar::update()':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:75:13: error: 'class EEPROMClass' has no member named 'updateBlock'

  EEPROM.updateBlock<T>(address, var);

         ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:75:26: error: expected primary-expression before '>' token

  EEPROM.updateBlock<T>(address, var);

                      ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h: In member function 'void EEPROMVar::restore()':

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:83:12: error: 'class EEPROMClass' has no member named 'readBlock'

 EEPROM.readBlock<T>(address, var);

        ^

C:\Users\balra\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMVar.h:83:23: error: expected primary-expression before '>' token

 EEPROM.readBlock<T>(address, var);

                   ^

exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Added CRC check option to fork.

Hello,

I updated the code in my fork (https://github.com/bzuidgeest/Arduino-EEPROMEx/) to include the functionality from https://github.com/AMPWorks/ArduinoLibs/tree/master/EEPromUtils into this libraries read/write/update block functions. So when writing data to EEPROM it also adds a start byte, records the length being written, and adds a CRC to the end of the data. I added function parameters to switch this behavior on and off.

the old functions are still all there and call the new ones using the new safeWrite parameter to switch off the new functionality.

The specific reason I had for adding these changes is that I want to be able to see if I read valid (initialized) eeprom data. the CRC check allows me to do this. Your library also had has far nicer code than the library I pulled the CRC code from.

I also changed readInt into readInt16 and readLong into readInt32. This is less confusing as the size of int and long differ depending on platform (teensy vs avr)and that might lead to mistakes if you do not look carefully.

If find just creating a pull request presumptuous. I can still do this if you find the changes interesting. I pulled enough code of github. Time to try put something back.

PS C++/github is not my most used language/sourcecontrol system. To me the changes I made look nice enough and seem to work in the tests I did, but I advise looking over the changes carefully.

Let me know.

Unable to compile for arduino nano every

I cannot compile my code for the arduino every board. I only included the library to see if it would compile and it does not. Help.
This is the compiler output.
E:\programata za arduino IDE e tuka\Arduino\arduino-builder -dump-prefs -logger=machine -hardware E:\programata za arduino IDE e tuka\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools E:\programata za arduino IDE e tuka\Arduino\tools-builder -tools E:\programata za arduino IDE e tuka\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries E:\programata za arduino IDE e tuka\Arduino\libraries -libraries E:\arduino skechovi\libraries -fqbn=arduino:megaavr:nona4809:mode=off -ide-version=10813 -build-path C:\Users\User\AppData\Local\Temp\arduino_build_989311 -warnings=default -build-cache C:\Users\User\AppData\Local\Temp\arduino_cache_710031 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avrdude.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -verbose E:\arduino skechovi\PLOCI\Vaga HX711\Sim_vaga\Sim_vaga.ino E:\programata za arduino IDE e tuka\Arduino\arduino-builder -compile -logger=machine -hardware E:\programata za arduino IDE e tuka\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools E:\programata za arduino IDE e tuka\Arduino\tools-builder -tools E:\programata za arduino IDE e tuka\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries E:\programata za arduino IDE e tuka\Arduino\libraries -libraries E:\arduino skechovi\libraries -fqbn=arduino:megaavr:nona4809:mode=off -ide-version=10813 -build-path C:\Users\User\AppData\Local\Temp\arduino_build_989311 -warnings=default -build-cache C:\Users\User\AppData\Local\Temp\arduino_cache_710031 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5 -prefs=runtime.tools.avrdude.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\User\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -verbose E:\arduino skechovi\PLOCI\Vaga HX711\Sim_vaga\Sim_vaga.ino Using board 'nona4809' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.6 Using core 'arduino' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.6 Detecting libraries used... "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Alternatives for HX711.h: [[email protected]] ResolveLibrary(HX711.h) -> candidates: [[email protected]] "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Alternatives for SoftwareSerial.h: [[email protected]] ResolveLibrary(SoftwareSerial.h) -> candidates: [[email protected]] "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Alternatives for EEPROM.h: [[email protected]] ResolveLibrary(EEPROM.h) -> candidates: [[email protected]] "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Alternatives for EEPROMex.h: [[email protected]] ResolveLibrary(EEPROMex.h) -> candidates: [[email protected]] "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "E:\\arduino skechovi\\libraries\\HX711\\HX711.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src\\SoftwareSerial.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "E:\\arduino skechovi\\libraries\\EEPROMEx\\EEPROMex.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE Generating function prototypes... "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE "E:\\programata za arduino IDE e tuka\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\preproc\\ctags_target_for_gcc_minus_e.cpp" Compiling sketch... "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino5/bin/avr-g++" -c -g -Os -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega4809 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_NANO_EVERY -DARDUINO_ARCH_MEGAAVR -DMILLIS_USE_TIMERB3 -DNO_EXTERNAL_I2C_PULLUP "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino/api/deprecated" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\cores\\arduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\variants\\nona4809" "-IE:\\arduino skechovi\\libraries\\HX711" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\SoftwareSerial\\src" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\megaavr\\1.8.6\\libraries\\EEPROM\\src" "-IE:\\arduino skechovi\\libraries\\EEPROMEx" "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp" -o "C:\\Users\\User\\AppData\\Local\\Temp\\arduino_build_989311\\sketch\\Sim_vaga.ino.cpp.o" In file included from E:\arduino skechovi\PLOCI\Vaga HX711\Sim_vaga\Sim_vaga.ino:5:0: E:\arduino skechovi\libraries\EEPROMEx/EEPROMex.h:188:22: error: conflicting declaration 'EEPROMClassEx EEPROM' extern EEPROMClassEx EEPROM; ^~~~~~ In file included from E:\arduino skechovi\PLOCI\Vaga HX711\Sim_vaga\Sim_vaga.ino:4:0: C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.6\libraries\EEPROM\src/EEPROM.h:145:20: note: previous declaration as 'EEPROMClass EEPROM' static EEPROMClass EEPROM; ^~~~~~ Using library HX711 at version 0.2.0 in folder: E:\arduino skechovi\libraries\HX711 Using library SoftwareSerial at version 1.0 in folder: C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.6\libraries\SoftwareSerial Using library EEPROM at version 2.0 in folder: C:\Users\User\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.6\libraries\EEPROM Using library EEPROMEx at version 1.0.0 in folder: E:\arduino skechovi\libraries\EEPROMEx exit status 1 Error compiling for board Arduino Nano Every.

Use i2c EEPROM with EEPROMEx

Maybe I've overread, but is there a possibility to use an i2c connected EEPROM like MicroChips 24AA025E48 with EEPROMEx?

I'm switching to an ATSAM21D from an ATMega 1284p in my project to get more computing power. Sadly the ATSAM does not have internal EEPROM, allthough it could be emulated in flash. As I already have the mentioned EEPROM (2kb) in my setup to have an unique MAC Address for an ethernet connection, it would be great to use this with my existing structs which hold my configuration data.

https://github.com/JChristensen/extEEPROM seems to work well but is limited to 30-31 bytes per write, hence could not handle the struct.

I'm open to any suggestions.
Cheers

Fix compiler warnings

I normally prefer to have all warning on during compilation, since some warnings actually may be catastrofig. Could you fix warnings below. You could use e.g.
#ifdef _EEPROMEX_DEBUG
#define _PARAM_allowedWrites allowedWrites
#define _PARAM_address address
#else
#define _PARAM_allowedWrites
#define _PARAM_address
#endif

and then void EEPROMClassEx::setMaxAllowedWrites(int _PARAM_allowedWrites) {


libraries\Arduino-EEPROMEx-master\EEPROMex.cpp:74:45: warning: unused parameter 'allowedWrites' [-Wunused-parameter]
void EEPROMClassEx::setMaxAllowedWrites(int allowedWrites) {

libraries\Arduino-EEPROMEx-master\EEPROMex.cpp:319:35: warning: unused parameter 'address' [-Wunused-parameter]
bool EEPROMClassEx::isWriteOk(int address)

libraries\Arduino-EEPROMEx-master\EEPROMex.cpp:341:34: warning: unused parameter 'address' [-Wunused-parameter]
bool EEPROMClassEx::isReadOk(int address)

EEPROMex Library Compilation Error

I'm facing error running one of the examples of your library

C:\Users\asd\Documents\Arduino\libraries\Arduino-EEPROMEx-master/EEPROMex.h:29:24: fatal error: avr/eeprom.h: No such file or directory

#include <avr/eeprom.h>
compilation terminated.

exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

Please help me, I need eeprom to writeLog variable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.