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 

Uporaba EEproma v PIC16F84A

 
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
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.16
Kraj: Črnuče

PrispevekObjavljeno: Ned Jun 13, 2004 11:12 am    Naslov sporočila: icon_question Uporaba EEproma v PIC16F84A Odgovori s citatom

Spisal sem en programček, ki naj bi v teoriji shranil vrednost v EEprom in ga s tem ohranil pred pozabo v primeru odklopa elektrike.

Nogica RB1 je definiran kot vhod na katerega imam preko upora 200Ohm in tipke vezanega na maso. Nogice RA0-RA3 so določeni kot izhodi in nanje vezane LED.

Z pritiskom na tipko bi se morala povečati vrednost spremenljivke Rezultat, ki bi se morala nato vpisati v EEprom.

Program deluje, vsaj kar se tiče povečevanja spremenljive Rezultat. Medtem, ko shranjevanje ne deluje.

Ob štartu se tudi prižgejo vse LED. Kar bi pomenilo, da je v EEprom-u shranjena že neka vrednost. Kako v EEprom zapisati že neko poljubno vrednost pri peki programa?

Kje delam napako? Bi moral še kaj definirati?
Embarassed



test_eproma.txt
 Opis:

Download
 Ime datoteke:  test_eproma.txt
 Velikost datoteke:  3.73 KB
 Downloadano:  10 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Ned Jun 13, 2004 11:25 am    Naslov sporočila:   Odgovori s citatom

Tole sem "na hitro" videl

Koda:
   MOVLW   0x01                  ; nalo×i lokacijo naslova v W
   MOVWF   EEADR               ; se prenese v EEADR register
   MOVLW   Rezultat               ; nalo×i vrednost spremenljivke  Rezultat v W register  !!!!
   MOVWF   EEDATA               ; Rezultat se prenese v EEDATA register, da se ga lahko zapiÜe
   BSF      STATUS, RP0            ; Izbrana banka 1
   BCF      INTCON, GIE            ; prepreŔi izvajanje interuptov med pisanjem v eeprom
   BSF      EECON1, WREN         ; OmogoŔi pisanje v EEprom
   MOVLW   0x55                  ; nujno
   MOVWF   EECON2               ; nujno
   MOVLW   0xAA               ; nujno
   MOVWF   EECON2               ; nujno
   BSF      EECON1, WR            ; spro×i pisanje v EEprom
   BCF      STATUS, RP0            ; Izbrana banka 0
; konec pisanja v EEprom
   GOTO Zanka


Tretja vrstica od zgoraj.
Shranjuješ lokacijo registra Rezultat.
Moral bi napisati MOVF Rezultat,w

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



Pridružen-a: Pon 17 Maj 2004 23:12
Prispevkov: 321
Aktiv.: 1.45
Kraj: Grosuplje

PrispevekObjavljeno: Ned Jun 13, 2004 11:33 am    Naslov sporočila:   Odgovori s citatom

Silvo: ko smo že pri EEPROM-u. več mogoče kako se v ASM napiše npr. konstante v EEPROM, da potem ko "pečeš" PIC, da so tej podatki že v eepromu? na da jih vsakič ko na novo napišem program vnašam ročno (primer DS1820 naslovi)..
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: 14551
Aktiv.: 65.52
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 13, 2004 11:40 am    Naslov sporočila:   Odgovori s citatom

Sam običajno po izklopu prekinitve preverim če le le ta res izključena.

Koda:

bcf INTCON,GIE
btfsc INTCON,GIE
goto $-2
.....


Enako program zadrži ko se vrši vpis v EE

Koda:

....
bsf  EECON1,WR
btfsc EECON1,WR ;tale zastavica se briše hardwerko ko je vpis končan
goto $-1
....

_________________
lp
Silvo
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: 14551
Aktiv.: 65.52
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 13, 2004 11:50 am    Naslov sporočila:   Odgovori s citatom

glavič,

seveda gre Wink

Na začetku programa določiš lokacijo ee ter deklariraš vrednsoti za ee
Pri spodnjem primeru se bo začel vpis pri lokaciji 0 ter se bo za vsako nadaljno vrednost povečal za 1

Koda:

ORG 0X2100 ; ee lokacija
DE .5, DE .3, DE .7

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



Pridružen-a: Pon 17 Maj 2004 23:12
Prispevkov: 321
Aktiv.: 1.45
Kraj: Grosuplje

PrispevekObjavljeno: Ned Jun 13, 2004 1:16 pm    Naslov sporočila:   Odgovori s citatom

TNX, to sem rabil Wink
Do sedaj sem pisal 5 naslovov od DS1820 vedno na roke ;( kera zamuda časa Wink
Pa PICBASIC bom opustil, bom kar pri ASM ostal, ker je PICBASIC preveč požrešen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.16
Kraj: Črnuče

PrispevekObjavljeno: Ned Jun 13, 2004 2:43 pm    Naslov sporočila:   Odgovori s citatom

Silvo hvala! Very Happy

Sedaj zadeva dela kot bi morala.

Ker je mene tudi zanimalo vpisovanje vrednosti v EEprom, pri programiranju PIC-a, bi imel še eno vprašanje.

Na kodo, ki si jo napisal ORG 0x2100 DE 0.5 .... sem že naletel v eni knjigi s katero si tudi pomagam, vendar nobene razlage.

Kje dobiš te podatke? Sem gledal moj datasheet od PIC16F8x (DS30430C cca 122 strani), pa ni to nikjer omenjeno.

Velikokrat namreč naletim na kakšne ukaze, za katere ne najdem nobenih opisov pa potem ne vem točno kako in kdaj jih uporabiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Ned Jun 13, 2004 2:54 pm    Naslov sporočila:   Odgovori s citatom

glavič,

Citiram:
Pa PICBASIC bom opustil, bom kar pri ASM ostal, ker je PICBASIC preveč požrešen.

Applause


Highlag,

Osebno mi je bila največja pomoč "MPASM ASSEMBLER User's Guide" pdf, ki sem ga v davnih časih ko sem se začel ukvarjati z picom snel z microchipove domače strani.
Mislim, da ga še veno najdeš tam, sicer ga bom našel doma ter pripel. Tisto sem potem sprintal, kolegica, ki dela v tiskarni pa mi je to zvezala v knjigo.

_________________
lp
Silvo
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: 14551
Aktiv.: 65.52
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 13, 2004 3:04 pm    Naslov sporočila:   Odgovori s citatom

Koda:
ORG 0X2100 ; ee lokacija
DE .5, DE .3, DE .7


glavič me je opozoril, da tole ne dela

Moja napaka Embarassed Crying or Very sad

Pravilno:
Koda:
ORG 0X2100 ; ee lokacija
DE .5, .3, .7

_________________
lp
Silvo
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: 14551
Aktiv.: 65.52
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 13, 2004 3:12 pm    Naslov sporočila:   Odgovori s citatom

Highlag,
Mislim, da gre za TALE dokumnet. Nisem ga pa snemal, ker hodim trenutno na net preko analogne klicne linije Sad

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



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 18.16
Kraj: Črnuče

PrispevekObjavljeno: Ned Jun 13, 2004 3:15 pm    Naslov sporočila:   Odgovori s citatom

Hvala!
Službeni laser bo verjetno spet imel nekaj za tiskat. Tajnica pa je žal na bolniški, tako da bom moral knjigico naredit sam. Laughing

------------------------------------------------------------------------------------------------
Sem probal zdajle še Definirati začetno stanje EEproma in če je bil tisti ORG 0x2100 za

ORG 0x00
GOTO Main
ORG 0x04
GOTO Main

Je Compiler sporočil cel kup napak (Address exceeds maximum range for this processor...)
Ko sem ga dal na dno programa (Pred END) pa zadva deluje BP.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



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

PrispevekObjavljeno: Ned Jun 13, 2004 3:27 pm    Naslov sporočila:   Odgovori s citatom

Zaporedje naj bi bilo nekaj takega:

Koda:


   LIST P=16F84                      ;procesor

#INCLUDE "D:\ASM\P16F84.INC"    ;inicluide datoteka s potjo

   ERRORLEVEL -224,-302           ; izključene določene eeror kode ki jih prevajalnik  ne upošteva
   
   __CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC        ;konfiguracijski stavek


   CBLOCK 0XC   ;ZA^ETEK SNR -ram
   T1,T2
   ENDC

   ORG 0X2100    ;VREDNOST V EEPROMU
   DE .6,.18,.3,.7
   


   ORG 0   ;RESET VEKTOR
   GOTO GLAVNI
   ORG 0X04   ;PREKINITVENI VEKTOR   
   GOTO PREK
   ORG 0X05

GLAVNI



_________________
lp
Silvo
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: 14551
Aktiv.: 65.52
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Jun 13, 2004 3:58 pm    Naslov sporočila:   Odgovori s citatom

Highlag,
Dokument na katerega sem naredil povezavo zgoraj je pravi. Sem namreč sedaj prebrskal doma. Našel sem tudi QUICK REFERENCE GUIDE. (v prilogi) To je pa praktično vse kar potrebuješ kot pomoč.



30400e.pdf
 Opis:
QUICK REFERENCE GUIDE

Download
 Ime datoteke:  30400e.pdf
 Velikost datoteke:  314.75 KB
 Downloadano:  18 krat


_________________
lp
Silvo
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
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: 49 dni


Powered by phpBB © 2001, 2005 phpBB Group