1

I've included in my sketch and am trying to run a simple sketch that just does EEPROM.write(0,4); followed by a println of EEPROM.read(0); However, it won't compile. It keeps telling me there is an error, and that I'm making a "request for member 'write' in something that is not a structure or a union". I'm using the Mega ADK. What am I doing wrong? I've also tried to go to sketch->include libraries and include the EEPROM library directly, still no joy. This is Arduino 1.6.13 on Windows 8, if it matters.

  • 2
    You need to list your program ("sketch") for us to help. Guessing, (this is actually C++ so it's going to sound more complex than it really is, but) did you instantiate an instance of the EEPROM class? Did you include the header file for this class in your program? – st2000 Dec 23 '16 at 15:17
  • 1
    Actually I figured it out. I was using the wrong data types (my sketch wasn't quite what I had shown). I was sending in an unsigned int to the read/write as the address, but it requires an int and the data type is important. – Michael Stachowsky Dec 23 '16 at 15:21
  • 1
    This will sound odd, but in C++ passing the wrong data type is just like calling a totally different method. The up side, you can, for example, write a number of identically named methods that can handle different data types in unique ways. Obviously, the library authors could have done this, but did not. Maybe that is an improvement you can implement. – st2000 Dec 23 '16 at 15:27
  • I suggest you create an answer to your question. It can then (in a couple of days IIRC) be accepted as the right answer and other people can be helped by it. – Majenko Dec 23 '16 at 16:17
1

The problem had to do with data types. I was using an unsigned int as follows:

unsigned int addr = 0;
EEPROM.write(addr,5);

However, EEPROM.write requires an int, not an unsigned int, and this caused a compiler error.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.