Go Down

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

Chrisms

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]
#ifndef _PHONEMEMORY_H_
#define _PHONEMEMORY_H_

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


class PhoneMemory
{
  public:
   PhoneMemory();
   int addPhone(char *number);
};

#endif


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

int PhoneMemory::addPhone(char *number)
{
EEPROM.read(1);
}


Error:
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.

Thanks.

PaulS

What does your sketch look like? You can't hide the fact that you need EEPROM.h from the sketch.

Chrisms

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.

pYro_65

This code works under IDE 1.0.4

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

Chrisms


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
 

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.
Name:
Email:

shortcuts: alt+s submit/post or alt+p preview