Új hozzászólás Aktív témák

  • válasz Harcipocok84 #19328 üzenetére

    A probléma megértéséhez kicsit bele kell mélyedni az EEPROM-ok lelki világába.

    Fizikai rétegen egy eeprom írás igazából úgy zajlik, hogy törlődik az összes byte. Ez az általános elképzeléssel ellentétben nem azt jelenti, hogy nullázódik, hanem azt, hogy minden érték 1 lesz. Majd ebből az állapotból szelektíven állít mindent nullára.

    Ugyebár te egy viszonylag kicsi tartományon operálsz, tehát a bytejaid (arduino int 2 byte) valahogy így festenek:
    0b1000000010010110 (előjelbit, +150 15 maradék biten)
    Amikor a dínó írni próbál, átáll erre:
    0b1111111111111111
    majd elkezd nullázni. Ha azonban nem ér végig brownout miatt például, akkor kapsz a memóriába egy bármilyen számot, ami 32,767 és az általad menteni kívánt szám között szerepel valahol.

    Ha kritikus információt akarsz menteni, akkor ahogy a többiek írták, mentsd el többször, és vezess ellenőrző összeget a mentésekről, hogy tudd, ki a hibás.

Új hozzászólás Aktív témák

Hirdetés