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 

Težave z vpisom v Eeprom??

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
dgregor
Član
Član



Pridružen-a: Čet 06 Jan 2005 13:55
Prispevkov: 32
Aktiv.: 0.14
Kraj: Celje

PrispevekObjavljeno: Čet Maj 11, 2006 7:16 am    Naslov sporočila:  Težave z vpisom v Eeprom?? Odgovori s citatom

Pozdravljeni,

Moj problem izgleda takole - izdelujem program, ki omogoča nastavitev nekega opisa na LCD-ju preko tipk ter shranjenje v EEPROM pic-a na sledeč način:
- z eno tipko nastavljam znak v opisu,
- z drugo tipko nastavljen znak shranim v Eeprom in se pomaknem v naslednji
znak (zakasnitev po vpisu v Eeprom imam celo sekundo),
- z tretjo tipko izstopim iz subrutine in se vrnem v glavni program!

Po naloženju programa stvar deluje nekaj časa potem pa stvar obstane (predvidevam da ob vpisu v Eeprom?) in z resetom včasih deluje zopet nekaj časa drugič pa zopet obstane

Ima kdo kak komentar glede tega - program pišem v MicroBasicu, oziroma kak nasvet kako bolj elegantno rešiti sistem!

Lp in vnaprej hvala za odgovore, Gregor
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.94
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Maj 11, 2006 7:28 am    Naslov sporočila:   Odgovori s citatom

V tem basicu ti žal ne znam pomagat. V assemblerju bi vpis izgledal nekako takole, če slučajno lahko vrineš assemblersko kodo:

Predhodno je treba v EEDATA vpisati podatek ter v EEADR lokacijo. Primer je za 84. Za kak drug pic je potrebno ustrezno izbrati banke za uporabljene registre. Predpostavlja se, da so pred vpisom vključene prekinitve, ker le te po končanem vpisu ponovno vključim.


Koda:
EE_VPIS
   bcf INTCON,GIE      ;izklop vseh prekinitev
   btfsc INTCON,GIE   ;so res izkljucene
   goto $+2      ;
   bsf STATUS,RP0      ;bank1
   bsf EECON1,WREN      ;sprostim bit ki onemogoca pisanje v eeprom
   movlw 0x55      ;\
   movwf EECON2      ;|
   movlw 0xAA      ; >magicna sekvenca enako za vse pice serije 16X
   movwf EECON2      ;/
   bsf EECON1,WR      ;izvedem vpis
   btfsc EECON1,WR      ;bit se brise ko je vpis koncan
   goto $-1      ;se ni koncano
   bcf EECON1,WREN      ;onemogocim vpis
   bcf STATUS,RP0      ;bank0
   bsf INTCON,GIE      ;vkljucim prekinitve
   return

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



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Čet Maj 11, 2006 8:41 am    Naslov sporočila:   Odgovori s citatom

Za debug na en pin chipa priključi (preko upora) LED diodo. V različnih delih programa poblinkaj diodo (različno število blinkov). Na ta način bo takoj jasno, kje se je program ustavil.

Možno pa je, da je v tem basicu potrebna kakšna dodatna procedura za uporabo pisanja v eeprom (inicializacija,...,...). Glede na to, da program nekaj časa dela, potem pa crkne, bi lahko bil kriv stack (overflow).

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
California
Član
Član



Pridružen-a: Pet 26 Avg 2005 19:48
Prispevkov: 236
Aktiv.: 1.00
Kraj: Hrastnik

PrispevekObjavljeno: Sob Maj 13, 2006 9:25 pm    Naslov sporočila:   Odgovori s citatom

Poizkusi s subrotinami. Kličeš jih iz glavnega programa ob izpolnitvi določenega pogoja.

Koda:

sub procedure EE_write
    EEprom_write(naslov,K1)
end sub

sub procedure EE_read
    K2 = EEprom_read($00)
end sub

_________________
California
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 -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group