• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zapis do EEPROM
#2
Liczba trzycyfrowa to wystarczy zmienna int. Tu masz przykład zapisu dowolnej* zmiennej lub całego ich zestawu:
Kod:
#include <EEPROM.h>
int minuta;
byte godzina;
byte flagazapisu;
float temperatura;
int address;

struct save {
  byte godz;
  int minuta;
  float temp;
};
save zmiennakonfiguracyjnatypusave ={ 22,55,22.22};


void setup() {
save  dane2={0,0,0}; //nowa zmienna typu save
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

godzina=zmiennakonfiguracyjnatypusave.godz;
minuta=zmiennakonfiguracyjnatypusave.minuta; //to sa rozne zmienne
temperatura=zmiennakonfiguracyjnatypusave.temp;

Serial.println("co my tu mamy po uruchomieniu, zmienne domyslne z flash");
Serial.print("Godzina: ");
Serial.println(godzina);
Serial.print("minuta: ");
Serial.println(minuta);
Serial.print("Temperatura: ");
Serial.println(temperatura);

Serial.println("Zmienne domyslne z EEPROM");
flagazapisu=EEPROM.read(address);

if (flagazapisu==55)
{
address++;

EEPROM.get(address, dane2);
godzina=dane2.godz;
minuta=dane2.minuta; //to sa rozne zmienne
temperatura=dane2.temp;
Serial.print("GodzinaE: ");
Serial.println(godzina);
Serial.print("MinutaE: ");
Serial.println(minuta);
Serial.print("TemperaturaE: ");
Serial.println(temperatura);
}
else
{
Serial.println ("Nie bylo nic w EEPROMmie");
}


//zapisujemy nowe dane do EEPROM:
godzina++;
if (godzina>=24) godzina=0;
minuta++;
if (minuta>=60) minuta=0;
temperatura+=1;
if (temperatura>=100000) Serial.println("Pewnie już nie ma Eeprom, sporo zapisow");
zmiennakonfiguracyjnatypusave={godzina,minuta,temperatura};
dane2=zmiennakonfiguracyjnatypusave;//tylko tak dla jaj
address=0;
  EEPROM.update(address, 55);
address++;
EEPROM.put(address, dane2);


zmiennakonfiguracyjnatypusave ={ 22,55,22.22};

  address += sizeof(dane2); //Move address to the next byte after float 'f'.
EEPROM.put(address,zmiennakonfiguracyjnatypusave);
EEPROM.get(address, dane2);
godzina=dane2.godz;
minuta=dane2.minuta; //to sa rozne zmienne
temperatura=dane2.temp;

Serial.println("Zmienne odczyte z drugiego kompletu EEPROM");
Serial.print("GodzinaE2: ");
Serial.println(godzina);
Serial.print("MinutaE2: ");
Serial.println(minuta);
Serial.print("TemperaturaE2: ");
Serial.println(temperatura);


}

void loop() {
  /* Empty loop */
}
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
Zapis do EEPROM - przez kellyq - 02-04-2020, 18:50
RE: Zapis do EEPROM - przez kaczakat - 02-04-2020, 19:28
RE: Zapis do EEPROM - przez kellyq - 05-04-2020, 09:12
RE: Zapis do EEPROM - przez Robson Kerman - 05-04-2020, 10:01
RE: Zapis do EEPROM - przez fast_rabbit - 05-04-2020, 18:28

Skocz do:


Przeglądający: 1 gości