[elektro] PIC16F883 EEPROM adatvesztés
Móczik Gábor
pm_levlista at progzmaster.hu
Sat Nov 12 01:02:50 CET 2011
2011.11.09. 18:23 keltezéssel, BALOGH ANTAL írta:
> Az eepromba végül háromszor lett beirva minden .És ezek öszevetve.
> Plusz az eeprom iró fügvények egy váltózó egy bizonyos értékbe állítása
> esetén futottak.
> Az eepromba irt adatok egy része az előző értékektől csak nagyobb lehetet
> ezt is néztük.
Ilyen inkrementális tárolásnál, az élettartam növelése végett szokás úgy
megoldani, hogy 1-es komplemensben tárolod az adatot, több legyen az
1-es bit benne mint a nulla, mert az EEPROM törölt állapota 1-es, és ha
ide sokszor nullákat írsz, az jobban rövidíti az élettartamot.
Ezen felül kijelölsz egy szélesebb blokkot, amibe egymás után írod az
adatokat. Ezt úgy csinálhatód, hogy végigolvasod a pl. 16 byteot, és
amelyikben a legnagyobb az adat, az a legrégebbi, oda beírod a
legújabbat (legkisebbet). A következő ciklusnál lesz egy következő
legkisebb. Minden írásnál egy cella módosul, és mindig egy másik.
Lineárisan növelhető az élettartam, ha egy cella 100 000-szer írható,
akkor egy 16 cellás blokkal ez 1 600 000-re növekszik.
Nem tudom érthető-e.
Ez a kiindulási állapot (hexa számok, 3 elemű blokk):
FF FF FF
Csökkented mindig a legnagyobbat, jelen esetben az elsőt:
FE FF FF
Következő lépések:
FE FD FF
FE FD FC
FB FD FC
FB FA FC
FB FA F9
...
Minimumkereséssel megtudod melyik az aktuális, vissafordítod (FF-x), és
megkapod a növekvő számokat.
Ez élettartam növelés volt, a hibajavítás az egy másik kérdéskör,
mindenesetre mivel a blokkban egymás utáni számoknak kell lennie, ez
önmagában már egy nagyon jó ellenőrzési és javítási lehetőséget ad!
More information about the Elektro
mailing list