Skocz do zawartości

Pomocna odpowiedź

Napisano

Witam.

Mam mały problem z pamięcią EEPROM. Otóż napisałem program w którym poprzez przycisk dodawana i zapisywana jest liczba. Problem polega na tym że jeśli zresetuję arduino wówczas liczba jest pokazywana, ale jeśli nacisnę przycisk to ta zmienna się zeruje.

[/

#include

int asd = 0;

int x =0;

void setup(){

Serial.begin(9600);

pinMode(7, INPUT_PULLUP);

}

void loop(){

Serial.println(EEPROM.read(asd));

if(digitalRead(7) == LOW){

delay(20);

EEPROM.write(asd, x);

x ++;

while(digitalRead(7) == LOW);

delay(20);

}

}

]

__________

Komentarz dodany przez: Treker

Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum. 🙂

  • 4 tygodnie później...

Witam.

Wypróbuj poniższy fragment kodu, x jest równy 0 po ponownym uruchomieniu kontrolera, więc powinien być najpierw odczytany z pamięci żeby go dodawać. Powinieneś również zamienić miejscami dodawanie x z zapisem. Pamiętaj też że eeprom ma żywotność 100 000 cykli zapis odczyt, powinieneś przerobić kod tak by cały czas nie odczytywał niepotrzebnie liczby z pamięci.

if(digitalRead(7) == LOW){

delay(20);

x = EEPROM.read(asd);

x ++;

EEPROM.write(asd, x);

while(digitalRead(7) == LOW);

delay(20);

}

}

Pozdrawiam

  • Lubię! 1

"Pamiętaj też że eeprom ma żywotność 100 000 cykli zapis odczyt, powinieneś przerobić kod tak by cały czas nie odczytywał niepotrzebnie liczby z pamięci"

Nieprawda, EEPROM degraduje się wyłącznie od zapisów i to na liczbę cykli zapisu producent daje gwarancję. Odczyty z tej pamięci są zupełnie bezkarne.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...