[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