60 nap alatt Arduino #15 Nemfelejtő memória

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Avatar
szuperp
Bitmanipulátor
Hozzászólások: 114
Csatlakozott: 2012. november 17. szombat, 7:00

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: szuperp » 2013. január 10. csütörtök, 10:50

az eeprom egy nem felejtő memória... elvileg, ha kikapcsolod és újra be, akkor is folytatja a számolást... nem kezdi előröl...

Avatar
llori
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2011. március 12. szombat, 7:00
Tartózkodási hely: Százhalombatta

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: llori » 2013. január 10. csütörtök, 11:12

Igen ezt vártam én is!
De nem tette!
Míg nem a böngészgetés közben ráleltem egy elbújt tördelési hibára:

Kód: Egész kijelölése

bekapcsolas =
word(bekapcsolasH,bekapcsolasL);
// wordde alakitas


Nem is értettem mi célt szolgál ez a három sor. És ezért eltölttöm vele kis időt.

javítottam:

Kód: Egész kijelölése

bekapcsolas = word(bekapcsolasH,bekapcsolasL); // wordde alakitas

És ki is írta hogy 1287. start program 8O 8O 8O :D :D

Lenne még két kérdésem:

1.

Miért van két, alacsony és magas helyiérték:

Kód: Egész kijelölése

bekapcsolasH = EEPROM.read(2);       // magas helyiertek
bekapcsolasL = EEPROM.read(1);       // alacsony helyiertek


2.

És ezeket miért osztjuk 256-tal:

Kód: Egész kijelölése

bekapcsolasH = bekapcsolas/256; 
bekapcsolasL = bekapcsolas % 256;
EEPROM.write (1, bekapcsolasL);
EEPROM.write (2, bekapcsolasH);


És ebből a kettőből, hogy lesz decimális szám ennek segítségével:

Kód: Egész kijelölése

bekapcsolas = word(bekapcsolasH,bekapcsolasL);

Avatar
szuperp
Bitmanipulátor
Hozzászólások: 114
Csatlakozott: 2012. november 17. szombat, 7:00

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: szuperp » 2013. január 10. csütörtök, 11:27

kicsit nézz utána szerintem a számrendszereknek... főleg a hexadecimálisnak (16-os) és akkor ez nem lesz kérdés.

Avatar
llori
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2011. március 12. szombat, 7:00
Tartózkodási hely: Százhalombatta

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: llori » 2013. január 10. csütörtök, 11:41

lerajzolós típus vagyok!
Lerajzoltam!

Köszi a megerősítést.
Közben rájöttem, hogy 256-os számrendszer van, és ha 255 főlé kell számolni, akkor kell indul a bekapcsolásH váltózó.

Feltételezem a

Kód: Egész kijelölése

word(bekapcsolasH,bekapcsolasL);
parancs ezt teszi helyre...

Nem találom viszont, a WORD változó hány byte-on van tárolva.
BYTE változó 1, INT - 2, tán a WORD is 2-n?

Kellene egy megerősítés:
Azt olvastam, hogy a Atmega328P-PU chip, ami az arduino-n van, 1kB eeprom-ot tartalmaz.
Ez azt jelenti programozás technikailag, hogy az EEPROM.write(cím,adat) parancsba 0 és 1023 tudom a címet állítni INT típussal (tanfolyam anyag szerint a 0-ásat ne használjuk), a adat helyére pedig BYTE adattípust írok, (0-255).
Jól értem?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9917
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: Robert » 2013. január 10. csütörtök, 12:02

Word, integer: 2byte
Byte, char: 1 byte


Jól érted az eepromot. BYTE-alapú a cellája. Címe 0...utolsó cella lehet.

Attila61
Újonc
Újonc
Hozzászólások: 7
Csatlakozott: 2017. december 23. szombat, 15:05

Re: 60 nap alatt Arduino #15 Nemfelejtő memória

HozzászólásSzerző: Attila61 » 2018. január 18. csütörtök, 21:29

Az #include "EEPROM.h" nekem is fejtörést okozott.
Így legalább a hsz.ekben utánnanéztem.
Nekem is a start sor elé írja a növekvő számot, noha az arduinot is lekapcsolom, s a progit újra beolvastatom.
Az EPROM nem felejt. ):


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég