salve,a tutti sono sempre quello nuovo,.
1)se salvo solo uno funziona se voglio salvare entrabbi due contatori mi danno sempre 0
1)se salvo solo uno funziona se voglio salvare entrabbi due contatori mi danno sempre 0
code: [select]
#include <eeprom.h>
#include <bridge.h>
int buttonpin = 7;
char buttonstate = 0;
int contatore =0;
int addr_a = 0;
int buttonpin6 = 6;
char buttonstate6 = 0;
int contatore6 = 0;
int addr_ b = 0;>>>>>>>>>era qui dove sbagliavo (addr_b = 1;
void setup()
{
bridge.begin();
delay(1000);
bridge.put("contatore", string(addr_a));
bridge.put("contatore6", string(add_b));
contatore = eeprom.read (addr_a);
contatore6 = eeprom.read(addr_b);
}
void loop() {
buttonstate = digitalread(buttonpin);
/* every 200ms: */
if (buttonstate == low) {
contatore = contatore +1; eeprom.write(addr_a,contatore);
delay(500);
bridge.put("contatore", string(contatore));
}
bridge.put("contatore",string(contatore));
buttonstate6 = digitalread(buttonpin6);
/* every 200ms: */
if (buttonstate6 == low) {
contatore6 = contatore6 +1; eeprom.write(addr_b,contatore6);
delay(500);
bridge.put("contatore6", string(contatore6));
}
bridge.put("contatore6", string(contatore6));
}
la prima cosa da fare è salvare due contatori indirizzi diversi della eeprom, al momento li salvi entrambi 0, per cui l'ultimo che vai scrivere sovrascriverà il precedente.
oltre questo, se il tuo contatore è un int, devi usare eeprom.put() invece di eeprom.write(), visto che un int occupa più di un byte. di conseguenza, anche gli indirizzi dovranno essere sufficientemente distanti per permettere la scrittura del dato intero.
oltre questo, se il tuo contatore è un int, devi usare eeprom.put() invece di eeprom.write(), visto che un int occupa più di un byte. di conseguenza, anche gli indirizzi dovranno essere sufficientemente distanti per permettere la scrittura del dato intero.
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > [RISOLTO]EEPROM CONTATORE.
arduino
Comments
Post a Comment