memória

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 9908
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2012. május 8. kedd, 10:03

LCD háttérvilágítás a legnagyobb fogyasztó általában... Nálam 50...150 ma!

Avatar
nszenteczki
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Tartózkodási hely: Orosháza, Móricz Zsigmond. u. 11 II/7

Re: memória

HozzászólásSzerző: nszenteczki » 2015. március 1. vasárnap, 11:47

Sziasztok!

Van néhány dolog, amit nem értek memória kezelésnél. Az AVR eepromjában szeretnék tárolni adatokat (nem azon a részen ahol a programkód van), és címkékkel elérni.

pl.:

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

' Bascomban olvasta szerint próbálkoztam és próbálnám egyszerűsíteni.
'Így működik:
$eeprom
   Label1:
   Data 2 , 0 , 1 , 254 , 255
   Label2:
   Data 4 , 3 , 6 , 251 , 244 , 33 , 21 , 10
$data

   Sor = 0

   Readeeprom B , Label2
   Incr Sor
   Lcdat Sor , 1 , B                                        '4
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '3
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '6
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '251
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '244
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '33
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '21
   Readeeprom B
   Incr sor
   Lcdat Sor , 1 , B                                        '10

   Wait 2
   Cls

'próbálnám egyszerűsíteni, de így nem megy..
'az alábbi esetben az első, és a második érték jó, de a többi sorba
'mindíg a második adatot (3) írja, és nem tudom, h mit kellene másképp..

sor = 0

For For_cik1 = 1 To 8
   If For_cik1 = 0 Then
      Readeeprom B , Label2
   Else
      Readeeprom B
   End If

   Incr Sor
   Lcdat Sor , 1 , B
   Wait 1
Next


Ha jól gondolom az eram változók a "programkód" memóriába tárolódnak ugye? Mert a külső eep. file-t szeretném használni..
Ötlet?

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3231
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: memória

HozzászólásSzerző: kapu48 » 2015. március 1. vasárnap, 12:14

A

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

For For_cik1 = 1 To 8 ' 1-től indúlsz!
   If For_cik1 = 0 Then '? Sosem lessz 0 ?
      Readeeprom B , Label2 ' Sosem hajtódik végre!
   Else
      Readeeprom B
   End If


Próbáld így:

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

 Readeeprom B , Label2
   Incr Sor
   Lcdat Sor , 1 , B
   Wait 1
For For_cik1 = 1 To 7
      Readeeprom B
   Incr Sor
   Lcdat Sor , 1 , B
   Wait 1
Next

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

Re: memória

HozzászólásSzerző: Robert » 2015. március 1. vasárnap, 12:25

Goto 60 nap Arduino tanfolyam.
Bascom:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=21


ERAM: EEPROMban a változónak fenntartott hely. Ha aváltozó értéket változtat, az EEPROMba beíródik. Kiolvasásákor az EEPROM tartalom szintén. DE: If feltétel ERAM változóval nem megy! Előbb ki kell olvasni egy temp változóba!

Cimke: readeeprom mit, honnan
A honnan lehet fix cím vagy cimke.

Avatar
nszenteczki
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Tartózkodási hely: Orosháza, Móricz Zsigmond. u. 11 II/7

Re: memória

HozzászólásSzerző: nszenteczki » 2015. március 1. vasárnap, 12:34

Köszi a gyors reagálást!
Tök igazad van ezt elírtam, mert a fórumba csak egy egyszerűsített kódot akartam berakni, teheát nem egy copy-paste, de a futó kódnál helyesen írtam. De azért kipróbáltam az általad küldött variációt is és, ugyan az az eredmény. Tehát az első, második érték ok, de a harmadiktól a második érték ismétlődik..

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

Re: memória

HozzászólásSzerző: Robert » 2015. március 1. vasárnap, 12:47

Readeeprom érték - A sorban következőt olvassa.
Ha utána teszed a readeeprom mit, label - akkor a label cimke első eértékét fogja olvasni!

Avatar
nszenteczki
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Tartózkodási hely: Orosháza, Móricz Zsigmond. u. 11 II/7

Re: memória

HozzászólásSzerző: nszenteczki » 2015. március 1. vasárnap, 12:50

Robert írta:Goto 60 nap Arduino tanfolyam.
Bascom:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=21


ERAM: EEPROMban a változónak fenntartott hely. Ha aváltozó értéket változtat, az EEPROMba beíródik. Kiolvasásákor az EEPROM tartalom szintén. DE: If feltétel ERAM változóval nem megy! Előbb ki kell olvasni egy temp változóba!

Cimke: readeeprom mit, honnan
A honnan lehet fix cím vagy cimke.


Köszi Robi, igen ezt olvastam meg azthiszem értem is az ott leírtakat, ami nem volt egyértelmű nekem, hogy mindkét esetben EEPROM-ról beszélünk, és ha jól gondolom az eram változó a programmemória részben, míg a $eeprom-os adat pedik a külső eep. file-ban ugye? Mert vannak konstans adatok, amiket akarok küldözgetni, és nem akartam, hogy a program helyéből vegye el a helyet.

Avatar
nszenteczki
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Tartózkodási hely: Orosháza, Móricz Zsigmond. u. 11 II/7

Re: memória

HozzászólásSzerző: nszenteczki » 2015. március 1. vasárnap, 12:55

Robert írta:Readeeprom érték - A sorban következőt olvassa.
Ha utána teszed a readeeprom mit, label - akkor a label cimke első eértékét fogja olvasni!


Akkor ahogy kapu48 küldte, az megfelel ennek ?

Mert először label-ell (első érték), majd for ciklusban lábel nélkül (következő értékek)

De valamiért nem megy..

Avatar
nszenteczki
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Tartózkodási hely: Orosháza, Móricz Zsigmond. u. 11 II/7

Re: memória

HozzászólásSzerző: nszenteczki » 2015. március 1. vasárnap, 13:25


"..
Köszi Robi, igen ezt olvastam meg azthiszem értem is az ott leírtakat, ami nem volt egyértelmű nekem, hogy mindkét esetben EEPROM-ról beszélünk, és ha jól gondolom az eram változó a programmemória részben, míg a $eeprom-os adat pedik a külső eep. file-ban ugye? .."

Rájöttem, h ugyan arról az EEPROM részről van szó mindkét esetben (létrehoztam eram változókat is és kiolvastam az EEPROM-ot és az is ott van :-))

Viszont arra még nem jöttem rá, h miért nem működik a kapu48 féle kód..

kukuri
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: memória

HozzászólásSzerző: kukuri » 2015. május 22. péntek, 23:30

Üdvözlet.

Egy Mega eepromjába szeretnék időbéjjeget elmenteni. Ezt hogyan tudom megoldani minél egyszerűbben?
Miként tudok 0-255 hejett más értéket is rögzíteni és visszaolvasni?
Vagy mentsem el karakterenként és alakítsam át számmá az értéket?
• EEPROM.write(hova, mit)

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

Re: memória

HozzászólásSzerző: Robert » 2015. május 23. szombat, 3:25

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

Dim A As ERAM Word At &H12

"A" nevű word típusú változó definiálva az EEPROM területen a 12. memóriacímtől.

kukuri
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: memória

HozzászólásSzerző: kukuri » 2015. május 23. szombat, 10:52

Köszi.
Nem volt teljesen egyértelmű nekem a kezelése. :( Most meg nincs időm kikísérletezni hogyan is kell használni. Talán később.
Találtam egy másik megoldást is.
EEPROM.put( eeAddress, f );
kiolvasni pedig
EEPROM.get( eeAddress, f );
nyilván ehhez kell a #include <EEPROM.h> rész is.

a 100.000 irási ciklust hogy értelmezzem?
Egy- egy cellát lehet ennyiszer írni?
Tehát ha az 1 címre írok 100.000 szer utána gond nélkül írhatok a 2. címre 100.000 szer és így tovább?
Mert a címen levő fizikai réteg fárad el és nem lesz megbízható. Amennyire én tudom.

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

Re: memória

HozzászólásSzerző: Robert » 2015. május 23. szombat, 18:03

Ez a Bascom-AVR fórum.
EEPROM.put utasítás NINCS.

A 100.000 írásról: A bascom könyv v. 60 nap Arduino vonatkozó leckét elolvastad?
Ott is írva vagyon: 100000 írás/cella! Nem az összes, hanem egyetlen cellára igaz a 100.000.

kukuri
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2014. január 20. hétfő, 12:50

Re: memória

HozzászólásSzerző: kukuri » 2015. május 24. vasárnap, 0:27

Bocsi. Azt nem néztem hogy Bascom. Csak hogy memória. Nekem arduinohoz kellett.


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

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