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

  • tonermagus

    aktív tag

    Sziasztok!

    Már előre elnézést kérek a hülye kérdésért, de 100%-ra kell mennem :D

    Kérdés1:
    Szóval az Arduino Mega-nak 4096 Bytes-os az EEPROM-ja.
    Ez azt jelenti, hogy a EEPROM.put(address,érték) -nél az address helyére max 4096-ot írhatok alapesetben?

    Nyilván abba most nem kell belemenni, hogy pl. egy float típus 5byte-ot foglal ha jól tudom (4 az értéknek+1 checksum értéknek) és ebben az esetben nem férne el az utolsó 4096-os byteon....

    Kérdés2:
    Nem vagyok otthon hogy kipróbáljam, de addig is agyalok rajta hogy mi lehet a gond.
    Létrehozok egy tömböt , majd minden indításkor beolvasom az értékeit a memóriából, elméletileg 21 értéket, mert amikor írok a 0-ra is írok, és a 20-ra is írni szeretnék.

    float ertek[20];

    for (int i = 0; i <= 20; i++) {
    EEPROM.get((i * 10), ertek[i]);
    }

    Később felöltöm frissebb adattal: (nem for ciklus használok egyéb okok miatt)

    EEPROM.put(0, ertekamitbeteszek[0]);
    ...
    EEPROM.put(20, ertekamitbeteszek[20]);

    Amikor a 20. értéket írom bele akkor hülye értéket ad vissza, és a 0-as értéket is elállítja...
    Ez jól gondolom hogy azért van mert a tömböt alulméreteztem??? Ott 21-et kellene megadnom?

    [ Szerkesztve ]

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