www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Shranjevanje podatkov v interni eeprom
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
malci
Član
Član



Pridružen-a: Sob 15 Sep 2007 21:05
Prispevkov: 871
Aktiv.: 4.03
Kraj: Polhov Gradec

PrispevekObjavljeno: Pon Okt 06, 2008 9:35 am    Naslov sporočila:  Shranjevanje podatkov v interni eeprom Odgovori s citatom

Pozdravljeni!

Nimam nobene ideje, kako bi z bascomAVR napisal program za atmega8 , ki bi med delovanjem beležil izmerjene temperature v svoj Flash, ki bi jih potem občasno ( 1x dnevno) prek komunikacije rs232 prenesel v računalnik in stem sprostil prostor v mikrokontrolerju?

Ima kdo že narejen kak primer?

konkretno, krmiljenje centralne peči mi sedaj bere zunanjo temperaturo na vakih 5 min, in mi jo pošlje preko rs232 na računalnik. Problem je, ker računalnik ni vedno vklopljen.

Predvidevam da bi se to dalo narediti z eeprom, samo, nisem prav domač v komunikaciji I2C in tudi vezja ne bi rad popravljal, pa tudi,če se ne motim, eeprom-mi nimajo prav dolgo življensko dobo pisanja in prepisovanje

_________________
Elektronika za hobi


Nazadnje urejal/a malci Čet Okt 09, 2008 10:24 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.72
Kraj: glej fogl

PrispevekObjavljeno: Pon Okt 06, 2008 9:41 am    Naslov sporočila:   Odgovori s citatom

Saj ima atmega8 svoj notranji eeprom in ram. A ni dovolj velik? Tudi flash ima podobno dolgo življenjsko dobo kot eeprom.
_________________
lp, Klemen


Nazadnje urejal/a trot Pon Okt 06, 2008 9:44 am; skupaj popravljeno 1 krat
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
surla
Član
Član



Pridružen-a: Ned 14 Dec 2003 15:22
Prispevkov: 722
Aktiv.: 3.05
Kraj: Ljubljana

PrispevekObjavljeno: Pon Okt 06, 2008 9:43 am    Naslov sporočila:   Odgovori s citatom

EEprom ima tudi do milijon vpisov na isto lokacijo (pod določenimi pogoji) .
Flash v mikrokrmilnikih pa se lahko po podatkih proizvajalcev prepisuje do 10.000 krat (tam nekje). Tako , da EEprom je "boljši".
Koliko pa imaš prostega rama v mikrokontrolerju?
Sigurno ima tvoj mikro kakih 200 naslovov rama.verjetno jih imaš kakih 100 prostih. To uporabi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
malci
Član
Član



Pridružen-a: Sob 15 Sep 2007 21:05
Prispevkov: 871
Aktiv.: 4.03
Kraj: Polhov Gradec

PrispevekObjavljeno: Pon Okt 06, 2008 1:20 pm    Naslov sporočila:   Odgovori s citatom

Vredu, potem imem v spominu napačen podatek o življenski dobi eeproma.

Ja, atmega8 ima 512 Bytom notranjega eeproma.
Problem nastane, ker tega eeproma sploh ne znam uporabljati, prav tako ne poznam ukazov za delo s tem delom spomina. Kako so označeni določeni naslovi?, in, kako se do njih dostopa (bere, piše, briše).

Še najbolj vesel pa bi bil, če ima kdo napisna kak primer za delo z notranjim EEprom v bascomAVR z komentarji

lp
uroš

_________________
Elektronika za hobi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 563
Aktiv.: 2.38
Kraj: Ljubljana

PrispevekObjavljeno: Pon Okt 06, 2008 4:23 pm    Naslov sporočila:  shranjevanje podatkov med delovanjem v flash mik Odgovori s citatom

Uroš,
kaj če bi pogledal v Help? Tam boš našel oba nečina kako pisati in brati notranji eeprom. V primeru da ti notranji eeprom ne zadostuje, uporabi I2C zunanji eeprom, tudi za njega boš našel primere v Helpu.
Vlado
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Balanca
Neznanec
Neznanec



Pridružen-a: Tor 27 Maj 2008 9:32
Prispevkov: 4
Aktiv.: 0.02
Kraj: Ljubljana

PrispevekObjavljeno: Tor Okt 07, 2008 7:46 am    Naslov sporočila:   Odgovori s citatom

Malo sem že iz vaje. Včasih sem programiral Atmele (v asemblerju seveda Smile ). Obstaja zelo kratek ukaz, da zapišeš podatke v EEPROM. Ukazi in primeri so bili na ATMELOVI strani (v asemblerju). Sam sem uporabljal zadevo, da sem shranil podatke, predno je zmajkalo napajanja. Elegantna zadeva. Če kdo rabi shemo, ukaz za to naj mi pošlje mail franc.ravnikar@gmail.com
_________________
Franci R
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MarkoM
Član
Član



Pridružen-a: Tor 12 Sep 2006 15:29
Prispevkov: 2825
Aktiv.: 12.36
Kraj: Lovrenc na P.

PrispevekObjavljeno: Tor Okt 07, 2008 8:18 am    Naslov sporočila:   Odgovori s citatom

Verjetno v 3,4 vrsticah asm kode lahko pišeš in bereš iz eeproma. Vsaj tako je pri PIC-ih. Tukaj verjetno ni drugače. Pa verjamem, da piše celo v datasheetu.

Edit: zaradi firbca me je zanimalo in sem šel pogledati. V datashetu piše vse, imaš celo primer v asm-ju in c-ju. Tako, da datasheet v roke (str. 22)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.91
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Okt 07, 2008 10:46 am    Naslov sporočila:   Odgovori s citatom

Izgleda nekako takole.
(moj primer za Tiny2313)

Koda:
;--------------------------------------------
;procedura na predhodno nastavljeno lokacijo
;vpiše vrednost dobljeno v registru EEPodatek
;--------------------------------------------
EEVpis:
   sbic EECR,EEPE
   rjmp PC-1                 ;čakam na konec vpisa
   cbi EECR,EEPM0
   cbi EECR,EEPM1         ;omogočeno brisanje ter vpis
   out EEAR,EENaslov     ;nastavim naslov
   out EEDR,EEPodatek   ;vpišem podatek
   sbi EECR,EEMPE         ;master program enable
   sbi EECR,EEPE           ;vpis
   ret


branje

Koda:
;--------------------------------------------
;procedura iz predhodno nastavljene
;lokacije prebere vrednost ter jo shrane v EEPodatek
;--------------------------------------------
EEBranje:
   sbic EECR,EEPE
   rjmp PC-1
   sbi EECR,EERE            ;izvedem branje
   in EEpodatek,EEDR
   ret

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
malci
Član
Član



Pridružen-a: Sob 15 Sep 2007 21:05
Prispevkov: 871
Aktiv.: 4.03
Kraj: Polhov Gradec

PrispevekObjavljeno: Tor Okt 07, 2008 10:50 am    Naslov sporočila:   Odgovori s citatom

Ja res je v datasheet primer , sam kaj, ko mi je ASM in C popolnoma neznan.

V helpu je nekaj uporabnih primerov in
spodnji program mi je razumljiv, edino ne vem, kako bi (če se to s bascomAVR da) podatek zapisal v točno določeno pozicijo. Verjetno bi branje določene pozicije določil s pomočjo FOR- NEXT zanke

Ne zastopim pa, kako se naslavlja določene pozicije v eeprom-u še posebej pri I2C komunikaciji in zunanjem EEprom-u

Sicer pa bom poskušal s pomočjo spodnje kode sestaviti primer za moje potrebe, pa vas potem še kaj povprašam, če ne bom vedel.


Koda:

Dim B As Byte
$eeprom
Label1:
   Data 1 , 2 , 3 , 4 , 5 , 7 , 8 , 9
Label2:
   Data 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100

$data
   Readeeprom B , Label1
      Print B                                               'prints 1

   Readeeprom B
      Print B                                               'prints 2

   Readeeprom B , Label2
      Print B                                               'prints 10
   Readeeprom B
      Print B                                               'prints 20

'write eeprom
   B = 100
 Writeeeprom B , Label1
   B = 101

 Writeeeprom B
   Readeeprom B , Label1
      Print B                                               'prints 1
   Readeeprom B
      Print B                                               'prints 2

End


p.s.: Saj EEprom-u se življenska doba ne krajša če podatke samo bereš. Se motim?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
VolkD
Član
Član



Pridružen-a: Pet 24 Sep 2004 21:58
Prispevkov: 14228
Aktiv.: 60.03
Kraj: Divača (Kačiče)

PrispevekObjavljeno: Tor Okt 07, 2008 10:58 am    Naslov sporočila:   Odgovori s citatom

malci je napisal/a:
Saj EEprom-u se življenska doba ne krajša če podatke samo bereš. Se motim?


Ne motiš se.

Drugače pa bi bilo le prav, da začneš ovohavati vsaj C če že ne asm.

_________________
Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
joze
Član
Član



Pridružen-a: Pet 26 Jan 2007 10:27
Prispevkov: 204
Aktiv.: 0.91

PrispevekObjavljeno: Tor Okt 07, 2008 11:35 am    Naslov sporočila:   Odgovori s citatom

LP!

"Balanca" lahko objaviš tukaj na forumu, mislim da bi to znalo zanimati veliko ljudi.

Laughing
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
zuti
Član
Član



Pridružen-a: Tor 01 Feb 2005 23:49
Prispevkov: 65
Aktiv.: 0.27
Kraj: Mb

PrispevekObjavljeno: Čet Okt 09, 2008 6:33 pm    Naslov sporočila:   Odgovori s citatom

"Malci" upam da ti bo pomagalo.

Tako zapisuješ v Bascomu podatke v notranji eeprom. Podatek1,podatek2, podatek3 itd. so spremenljivke tipa byte ki jih želiš shraniti, dočim številke so pa
lokacije v eepromu, kamor boš podatke zapisal (1,2,3.......do 512 byt-ov
v tvojem primeru). Podatek1, 2, 3, 4 je samo primer spremenljivke,
uporabiš lahko katerokoli svojo spremenljivko in jo zapišeš na katerokoli
drugo lokacijo v obsegu eeproma.

Writeeeprom Podatek1 , 1
Waitms 10
Writeeeprom Podatek2 , 2
Waitms 10
Writeeeprom Podatek3 , 3
Waitms 10
Writeeeprom Podatek4 , 4
Waitms 10


Tako prebereš podatke iz eeproma.

Readeeprom Podatek1 , 1
Readeeprom Podatek2 , 2
Readeeprom Podatek3 , 3
Readeeprom Podatek4 , 4
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
malci
Član
Član



Pridružen-a: Sob 15 Sep 2007 21:05
Prispevkov: 871
Aktiv.: 4.03
Kraj: Polhov Gradec

PrispevekObjavljeno: Čet Okt 09, 2008 7:20 pm    Naslov sporočila:   Odgovori s citatom

aha, sem misli, da je to naslavlanje kaj bolj komplicirano v smislu šestnajstiškega sistema kot naprimer " I2cwbyte &B1010_0000 'slave address".


Citiram:
uporabiš lahko katerokoli svojo spremenljivko


misliš stem tudi Itneger, word.....?

Potemtakem bi spodnji osnutek programa moral delovati.

Naprimer: želel bi zapisovati temperature vsakih 10 min. ob prvem vpisu bi poleg temperature zabeležil tudi čas v urah in minutah meritve, mogoče še datum. (prvi vpis bi bil po tistem, ko bi prek rs232 prenesel podatke v računanik).

Koda:

Tmp = 10                                                    ' 10,2 stC
tmp1=2
Timeh = 13                                                  '13:25 ura
timemin=25

Lokac = 1                                                   'ali pač zaporedna številka meritve
lokac1 =lokac+1
lokac2=lokac + 300
lokac3 =lokac2+1


writeeeprom tmp2, lokac
waitms 10
writeeeprom tmp1,lokac
waitms 10
writeeeprom timeh,lokac
waitms 10
writeeeprom timemin, lokac



itd

branje pa bi izvedel podobno

Je mogoče v tem kaka kritična napaka?

lp
uroš

_________________
Elektronika za hobi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
zuti
Član
Član



Pridružen-a: Tor 01 Feb 2005 23:49
Prispevkov: 65
Aktiv.: 0.27
Kraj: Mb

PrispevekObjavljeno: Čet Okt 09, 2008 8:10 pm    Naslov sporočila:   Odgovori s citatom

Mislim da bi šlo tudi z integer in word, čeprav sta dolgi 2 (4) byt-a, ampak ko sem to enkrat probal, sem za vsak slučaj puščal za vsako spremenljivko 2 ali 3 lokacije. Če je to pravilno ne vem, ampak meni je takrat delovalo. Pravilno je menda, da se koristi več byt-nih spremenljivk in se jih kasneje z shiftanjem nekako združi, kako pa to gre, pa ne vem, ker tega nisem nikoli koristil.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3387
Aktiv.: 15.99

PrispevekObjavljeno: Čet Okt 09, 2008 8:35 pm    Naslov sporočila:   Odgovori s citatom

Malce razmišljaj tudi o tem, da boš 512 bytov eeproma z željenimi podatki kar hitro porabil... (datum, ura, temperatura). Če uporabiš podatke dan, mesec, ura, minuta, stopinje- je to 5 podatkov za vsak zapis. Torej maksimalno 100 zapisov. Skupno malce manj kot 17 ur.
Seveda ob predvidevanju, da je vsak podatek dolg en byte.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 496 dni


Powered by phpBB © 2001, 2005 phpBB Group