 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
dgregor Član

Pridružen-a: Čet 06 Jan 2005 13:55 Prispevkov: 32 Aktiv.: 0.14 Kraj: Celje
|
Objavljeno: Čet Maj 11, 2006 7:16 am Naslov sporočila: Težave z vpisom v Eeprom?? |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Čet Maj 11, 2006 7:28 am Naslov sporočila: |
|
|
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 |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Čet Maj 11, 2006 8:41 am Naslov sporočila: |
|
|
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 |
|
 |
California Član

Pridružen-a: Pet 26 Avg 2005 19:48 Prispevkov: 236 Aktiv.: 1.00 Kraj: Hrastnik
|
Objavljeno: Sob Maj 13, 2006 9:25 pm Naslov sporočila: |
|
|
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 |
|
 |
|
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|