Arduino Polska Forum
Zapis do pamięci EEPROM - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Zapis do pamięci EEPROM (/watek-zapis-do-pami%C4%99ci-eeprom)



Zapis do pamięci EEPROM - trebor - 07-03-2016

Mam wielką prośbę, otóż jeśli chodzi o zapis do pamięci Eeprom. Wszędzie są przykłady jak zapisać do tej pamięci ale w przykładach jest używana mała liczba 8 bitowa jak to próbuję zrobić to chodzi jak trzeba , tylko nie mogę znaleźć jak zapisać dużą liczbę np. 1023. pomożecie mi to zrobić. Prosiłbym o jakiś przykład i wytłumaczenie jak do pamięci Eeprom zapisać większą liczbę. Dziękuję


RE: Zapis do pamięci EEPROM - xtheo - 22-03-2016

Leży u mnie i się kurzy nie mam kiedy się za niego zabrać... więc w teorii:
Rozbij tą liczbę na dalsze komórki... nie wiem np Rozbij na cyferki gdzie 1 cyferka to 1 kanał?

Poczytaj sobie:

http://playground.arduino.cc/Code/EEPROMWriteAnything

I to

http://playground.arduino.cc/Code/EEPROMReadWriteLong


Pozdrawiam

Wysłane z mojego SM-G925F przy użyciu Tapatalka


RE: Zapis do pamięci EEPROM - JasQ - 23-03-2016

Tu masz na przykładzie z mojego kodu liczby większe od 255 musisz zapisać jako 2 bajty

zapis

EEPROM.write(2, lowByte(RSSI_MAX_A) );
EEPROM.write(3, highByte(RSSI_MAX_A) );

odczyt

RSSI_MAX_A = (EEPROM.read(3)<<8)+EEPROM.read(2);


Kod:
// EPROM  odczyt i zapis                    

void load_param ( void ) {

  if ( EEPROM.read(0)=='P' ) {  // sprawdzenie czy wczesniej bylo cos zapisane
      RSSI_MIN_A = EEPROM.read(1);
      RSSI_MAX_A = (EEPROM.read(3)<<8)+EEPROM.read(2);
      RSSI_MIN_B = EEPROM.read(4);
      RSSI_MAX_B = (EEPROM.read(6)<<8)+EEPROM.read(5);
      ALARM_RSSI = EEPROM.read(7);
      ALARM_BAT = EEPROM.read(8);
      BackLight_Time = EEPROM.read(9)*1000;
      Log_Time = EEPROM.read(14)*1000;
    }

}

void save_param ( void ) {

            
      EEPROM.write(0, 'P'); // nasza sygnaturka pierwszego zapisu
      EEPROM.write(1,RSSI_MIN_A);
      EEPROM.write(2, lowByte(RSSI_MAX_A) );
      EEPROM.write(3, highByte(RSSI_MAX_A) );  
      EEPROM.write(4,RSSI_MIN_B);
      EEPROM.write(6, highByte(RSSI_MAX_B) );  
      EEPROM.write(5, lowByte(RSSI_MAX_B) );
      EEPROM.write(7,ALARM_RSSI);
      EEPROM.write(8,ALARM_BAT);
      EEPROM.write(9,(BackLight_Time/1000));
      EEPROM.write(14,(Log_Time/1000));
      
  
}



RE: Zapis do pamięci EEPROM - RobUK - 26-04-2018

Właśnie wpadłem gdzieś na ten twój kodzik w sieci , chyba na elektrodzie i już testuję Tongue
Nie do końca kumam jeszcze ale powoli zaczyna do mnie docierać Smile

Szybko dodałem kilka linijek i widzę, że działa i rozumiem już jak to wygląda.
To w zasadzie kończy temat Tongue
Dziękuję