Nagu märkite, on sisemise EEPROM-i eluiga 100 000 kirjutamistsüklit. See pole oletus - väga oluline osa ATmega328-st jõuab selle numbrini probleemideta. Olen varem katsetanud kolme protsessorit ja kõik jõudsid probleemideta 150 000 tsüklini.
Oluline on märkida EEPROMi tõrke režiimi. Enamik "EEPROM hävitaja" projekte loevad / kirjutavad korduvalt, kuni andmeid pole üldse kirjutatud. Enne seda punkti on EEPROM endiselt kahjustatud. See ilmneks siis, kui andmeid ei säilitataks mõistliku aja jooksul. Sel põhjusel ei ole mõistlik tugineda millelegi muule kui 100 000 kirjutamistsüklile.
EEPROM erineb ATmega RAM-ist. Sellesse kirjutamine ei ole lihtne ega kiire, kuid see on pakitud sõbralikku Arduino teeki, varjates seda keerukust kasutaja eest.
Esimene sirgendustasand on EEPROMi teek, mis on triviaalne lihtne], kutsudes lihtsalt lugemiseks ja kirjutamiseks veel kahte funktsiooni. See kutsub eeprom_write_byte, mille leiate siit.
See funktsioon kasutab tekstisisest montaaži, nii et seda ei pruugi hõlpsasti mõista. Siiski on kommentaar, mida saab hõlpsasti mõista:
Määra programmeerimisrežiim: kustuta ja kirjuta
See viitab ühele EEPROM-iga töötamise keerukusele - toit kirjutamiseks peate selle kõigepealt kustutama. See tähendab, et kui helistate EEPROM.write (), sooritab see kirjutamistsükli olenemata teie kirjutatavast väärtusest.
See tähendab, et korduval 0xFF-i kirjutamisel on tõenäoliselt sama efekt kui 0xFF, 0x00 kirjutamisel. , 0xFF, 0x00 jne.
Selle lahendamiseks on võimalusi - võite proovida enne EEPROM.write () -i kutsuda EEPROM.read (), et näha, kas väärtus on juba sama, kuid see nõuab täiendavat aeg.
EEPROM-i liigse kulumise vältimiseks on ka teisi tehnikaid, kuid nende kasutamine sõltub teie rakendusest.