Go Down

Topic: [resolu] Re: Aide pour EEPROMLoadAndSaveSettings (Read 943 times) previous topic - next topic

casper22

Oct 26, 2013, 04:20 pm Last Edit: Oct 29, 2013, 04:37 pm by casper22 Reason: 1
Bonjour à tous

Dans le cadre d'un projet de d'envoi d'alarmes par GSM, J'aimerai sauvegarder certaines variables de mon programme afin de les garder comme par exemple, le nombre de SMS envoyés
Pour ce faire, je pensais utiliser le programme suivant :  EEPROMLoadAndSaveSettings  qui semble être tout fait pour ça

J'ai simplement téléchargé la version sur arduino .cc  , mais il est impossible de le compiler

Je ne vois pas vraiment ce qu'il faut faire pour ne plus avoir ces problèmes

j'ai rien vu sur le site du dévelppeur

sketch_oct26b.ino: In function 'void setup()':
sketch_oct26b:35: error: 'EEPROM' was not declared in this scope
sketch_oct26b.ino: In function 'bool loadConfig()':
sketch_oct26b:52: error: 'EEPROM' was not declared in this scope
sketch_oct26b.ino: In function 'void saveConfig()':
sketch_oct26b:58: error: 'EEPROM' was not declared in this scope

arduino UNO + 1.0.5

merci d'avance

code brut de téléchargement sur le site
Code: [Select]


#include <EEPROMex.h>


// ID of the settings block
#define CONFIG_VERSION "ls1"

// Tell it where to store your config data in EEPROM
#define memoryBase 32

bool ok  = true;
int configAdress=0;

// Example settings structure
struct StoreStruct
{
   char version[4];   // This is for mere detection if they are your settings
   int a, b;          // The variables of your settings
   char c;
   long d;
   float e[6];
} storage =
{
   CONFIG_VERSION,
   220, 1884,
   'c',
   10000,
   {4.5, 5.5, 7, 8.5, 10, 12}
};

void setup()
{
// EEPROM.setMemPool(memoryBase, EEPROMSizeUno); //Set memorypool base to 32, assume Arduino Uno board
 configAdress  = EEPROM.getAddress(sizeof(StoreStruct)); // Size of config object
 ok = loadConfig();
}

void loop()
{
 // [...]
 int i = storage.c - 'a';
 // [...]
 storage.c = 'a';
 if (ok)
   saveConfig();
 // [...]
}

bool loadConfig()
{
 EEPROM.readBlock(configAdress, storage);
 return (storage.version == CONFIG_VERSION);
}

void saveConfig()
{
  EEPROM.writeBlock(configAdress, storage);
}

skywodd

Bonjour,

Si tu ajoutes tout en haut du code :
Code: [Select]
#include <EEPROM.h>
ça dit quoi ?
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

casper22

#2
Oct 27, 2013, 10:20 am Last Edit: Oct 29, 2013, 04:35 pm by casper22 Reason: 1
Bonjour

Fonctionne pas non plus, mais donne des autres défauts

sketch_oct27a.ino: In function 'void setup()':
sketch_oct27a:35: error: 'class EEPROMClass' has no member named 'getAddress'
sketch_oct27a.ino: In function 'bool loadConfig()':
sketch_oct27a:52: error: 'class EEPROMClass' has no member named 'readBlock'
sketch_oct27a.ino: In function 'void saveConfig()':
sketch_oct27a:58: error: 'class EEPROMClass' has no member named 'writeBlock'

skywodd

Question conne ... Tu as installé la libraire EEPROMex comme indiqué dans le wiki ?
http://playground.arduino.cc//Code/EEPROMex
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

casper22

#4
Oct 29, 2013, 04:34 pm Last Edit: Oct 29, 2013, 04:38 pm by casper22 Reason: 1
Bonjour
affirmatif, lalibrairie était bien installée


En fait j'ai trouvé en regardant sur l foum deElenBass.net  , j'au vau qu'il y avait un probléme de majuscule dans
#include <EEPROMex.h> , qui doit être en fait #include <EEPROMEx.h>

Ca complile nikel

Il annoncait qu'il ddevait y avoir un correctif, mais qui n'a apparemment pas été fait
Merci pour l'aide

Go Up