Go Down

Topic: Issue including EEPROM.h function calls within class (Read 3293 times) previous topic - next topic


Hi guys, I've been searching a lot and can't seem to get a solid answer on this. I'm trying to use EEPROM.read() and write() in a class. Can someone tell me where I'm going so terribly wrong? Thanks.

Code: [Select]

#include <Arduino.h>
#include <string.h>
#include <EEPROM.h>

class PhoneMemory
   int addPhone(char *number);


Code: [Select]
#include "PhoneMemory.h"

int PhoneMemory::addPhone(char *number)

Code: [Select]
PhoneMemory.cpp: In member function 'int PhoneMemory::addPhone(char*)':
PhoneMemory.cpp:12: error: 'EEPROM' was not declared in this scope

I appreciate any help.



What does your sketch look like? You can't hide the fact that you need EEPROM.h from the sketch.
The art of getting good answers lies in asking good questions.


The main .ino includes looks a like this:

Code: [Select]
#include <SoftwareSerial.h>       //Include the NewSoftSerial library to send serial commands to the cellular module.
#include <string.h>               //Used for string manipulations
#include "CircularBuffer.h"
#include "PhoneMemory.h"
#include <EEPROM.h>

I've tried it with both EEPROM.h being included and not included in the .ino. I find it weird that Serial will work just fine in the class but EEPROM won't.

Thanks for your help.

Bob Applegate

Has anyone resolved this?  I'm having exactly the same problem.


This code works under IDE 1.0.4

make sure you have "#include <EEPROM.h>" in the sketch ( not just library ).
Forum Mod anyone?


Has anyone resolved this?  I'm having exactly the same problem.

I have no idea if what Pyro said is true, if it was fixed in a new IDE version. In case it isn't though, here is the work around I used:

Code: [Select]
uint8_t eepromRead(int address)
  return eeprom_read_byte((unsigned char *) address);

void eepromWrite(int address, uint8_t value)
  eeprom_write_byte((unsigned char *) address, value);

You just use those functions to read/write to the EEPROM if it won't work right any other way.

Hope that helps!

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131