memória
- nszenteczki
- Újonc
- Hozzászólások: 12
- Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Re: memória
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.:
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?
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
Ötlet?
Re: memória
A
Próbáld így:
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
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
Re: memória
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.
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.
- nszenteczki
- Újonc
- Hozzászólások: 12
- Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Re: memória
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..
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..
Re: memória
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!
Ha utána teszed a readeeprom mit, label - akkor a label cimke első eértékét fogja olvasni!
- nszenteczki
- Újonc
- Hozzászólások: 12
- Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Re: memória
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.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.
- nszenteczki
- Újonc
- Hozzászólások: 12
- Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Re: memória
Akkor ahogy kapu48 küldte, az megfelel ennek ?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!
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..
- nszenteczki
- Újonc
- Hozzászólások: 12
- Csatlakozott: 2009. szeptember 17. csütörtök, 6:00
Re: memória
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 )
"..
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? .."
Viszont arra még nem jöttem rá, h miért nem működik a kapu48 féle kód..
Re: memória
Ü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)
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)
Re: memória
Kód: Egész kijelölése
Dim A As ERAM Word At &H12
Re: memória
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.
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.
Re: memória
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.
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.
Re: memória
Bocsi. Azt nem néztem hogy Bascom. Csak hogy memória. Nekem arduinohoz kellett.