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 

16f877A
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Tor Sep 18, 2007 5:47 pm    Naslov sporočila:  16f877A Odgovori s citatom

Prosim ce mi lahko nekdo razlozi zakaj mi vrednosti, ki jih preberem iz eeproma vpisuje na lokacije od 120h naprej se pravi v Bank2???
A je to zato ker z njimi delata registra EEADR in EEDATA ki sta v Bank2 Question
Ostale vrednosti pa mi normalno shrani na lokacijo od 20h kot imam definirano v Cblock.

Koda:
   movlw   0x00         ;naslov lokacije eeproma
   movwf   Address         ;shranimo v to spremenljivko
   call   Beri_eeprom      ;preberemo lokacijo
   movwf   Cyc_eep         ;vrednost shranimo v to spremenljivko......to vrednost mi vpise potem na lokacijo od 120h naprej!!!
;********************************************************
;preberemo vrednosti iz EEPROMA
;********************************************************
Beri_eeprom
   bsf      STATUS,RP1
   bcf      STATUS,RP0
   movf   Address,w
   movwf   EEADR
   bsf      STATUS,RP0
   bcf      EECON1,EEPGD
   bsf      EECON1,RD
   bcf      STATUS,RP0
   movf   EEDATA,w
   return

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Tor Sep 18, 2007 6:46 pm    Naslov sporočila:   Odgovori s citatom

Odgovarjam sam sebi: Pozabil pobrisat STATUS,RP1 :bonk:
_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Čet Sep 20, 2007 4:45 pm    Naslov sporočila:   Odgovori s citatom

Zakaj mi v MPLAB-u pri simulaciji 16f877A, ko hocem npr. pin PORTC,2 postaviti na visok nivo ne sprejme vrednosti v tem primeru 4. (se pravi v WATCH, kjer se da opazovati te registre).
Avtomatsko mi jo postavi nazaj na 0x00 ali pa npr. konkretno za vrednost 4 mi postavi na 0x00, za 5 mi postavi 0x01..itd.
Do 3 kar pomeni da sta visoka PORTC,0 in PORTC,1 pa je vredu.

Hvala, lp

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.42

PrispevekObjavljeno: Čet Sep 20, 2007 7:36 pm    Naslov sporočila:   Odgovori s citatom

imas pravilno nastavljene TRIS registre?
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pet Sep 21, 2007 4:58 pm    Naslov sporočila:   Odgovori s citatom

A lahko sploh priredis vrednost registru v simulaciji ce je definiran kot vhod?
Ker imam PORTC,2 in 3 definiran kot vhod, ce pa jih dam kot izhod pa zadeva deluje!

Takole imam nastavljene TRIS registre:

Koda:
   bcf      STATUS,RP1
   bsf      STATUS,RP0
   clrf   TRISB
   movlw   b'11111110'
   movwf   TRISD
   movlw   b'00001100'
   movwf   TRISC
   movlw   b'10000011'
   movwf   OPTION_REG
   bcf      STATUS,RP0
   clrf    PORTB



Lp

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.


Nazadnje urejal/a kavelj22 Pet Sep 21, 2007 5:04 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.58

PrispevekObjavljeno: Pet Sep 21, 2007 5:04 pm    Naslov sporočila:   Odgovori s citatom

Ljuba dusa, a se ti norcujes iz pomoci, ki jo dobis tukaj ? Pin 2 imas nastavljen kot vhod (torej izkljucen izhodni driver), pa te cudi, zakaj izhodni driver ne deluje ? Stvari delujejo boljse, ce jih vkljucimo Wink

Kaj bo naslednje - "zakaj luc ne deluje kadar imam ugasnjeno ?" d'oh!

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pet Sep 21, 2007 5:31 pm    Naslov sporočila:   Odgovori s citatom

Se opravicujem!

Kako potem simuliras program ce rabis nek vhod na visokem nivoju da gre program v zeljeno smer. A moras zmeraj postavljati neke zastavice oz. karkoli in potem v File Registers spreminjati vrednosti?

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.58

PrispevekObjavljeno: Pet Sep 21, 2007 5:55 pm    Naslov sporočila:   Odgovori s citatom

Ne, imas moznost simuliranja zunanjih stimuli. Najlazje bos razumel, ce ti opisem primer:

1: Gres na Debugger -> Stimulus -> New Workbook
2: Izberes Asynch
3: Kliknes na polje v stolpcu Pin/SFR in izberes pin (recimo RA0)
4: Kliknes na polje v stolpcu Action in izberes kaj naj se zgodi (recimo ce hoces, da se stanje invertira, potem das toggle - meni pride to se najveckrat prav med testiranjem)
5: Polji Width in Units sta relevantni, ce izberes pod Action Pulse High/Low, menda je jasno cemu sta namenjeni
6: Okno s stimulusi pustis pri miru (recimo ga z misjo povleces malce vstran, tako da ga druga ne prekrivajo v celoti) in zacnes debugiranje programa
7: Ko prides na mesto, kjer je potrebno simulirati doloceno akcijo hardvera, z misjo kliknes na okno Stimulus (tako da spet pride v ospredje) ter kliknes na tisto puscico v stolpcu Fire - takrat se izvrsi akcija, ki si jo nastavil v tisti vrstici, od katere puscico si kliknil

To je to. Pod View -> SFRs ali Watch lahko opazuijes spremembe, ki jih povzroca sprozanje stimuli.

_________________
Ka ti bo pa torba ce si kupu kolo ?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Sob Sep 22, 2007 2:01 pm    Naslov sporočila:   Odgovori s citatom

"That's more like...I like it Very Happy

Hvala Sokrat!

Lp

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Pon Sep 24, 2007 10:04 pm    Naslov sporočila:   Odgovori s citatom

V cem bi bil problem da mi pri uporabi Time0 Interrupt, ko gre prvic skozi prebere da je zastavica postavljena in gre skozi zanko namesto da bi cakal npr: 4ms za prescaler 16.
Citiram:

Main
btfss INTCON,TMR0IF
goto Main
bcf INTCON,TMR0IF

Hvala,lp

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Tor Sep 25, 2007 12:30 am    Naslov sporočila:   Odgovori s citatom

Tik preden greš v Main, pobriši TMR0 in zastavico :
... inicializacija ...
bcf INTCON,TMR0IF
clrf TMR0

Main
btfss INTCON,TMR0IF
goto Main
bcf INTCON,TMR0IF
... nadaljevanje...
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Tor Sep 25, 2007 5:38 pm    Naslov sporočila:   Odgovori s citatom

Deluje,hvala Wink
_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3641
Aktiv.: 16.01

PrispevekObjavljeno: Čet Sep 27, 2007 5:48 pm    Naslov sporočila:   Odgovori s citatom

Še ena malenkost. NAJPREJ pobriši TMR0 in šele potem tudi zastavico.

clrf TMR0
bcf INTCON,TMR0IF

Main
btfss INTCON,TMR0IF
goto Main
bcf INTCON,TMR0IF
... nadaljevanje...

V najbolj neugodnem primeruu se lahko TMR0 "obrne" v naslednjem ukazu, takoj za brisanjem zastavice, zato jo še enkrat postavi.
LP,
Igor

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Čet Sep 27, 2007 7:33 pm    Naslov sporočila:   Odgovori s citatom

TMR0 v bistvu sploh nisem brisal ampak sem mu nastavil svojo vrednost, samo bcf INTCON,TMR0IF sem uporabil in zadeva spila!

Hvala, Igo!!!

Lp

_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
kavelj22
Član
Član



Pridružen-a: Tor 23 Jan 2007 23:56
Prispevkov: 465
Aktiv.: 2.08
Kraj: Ljubljana

PrispevekObjavljeno: Tor Feb 19, 2008 4:55 pm    Naslov sporočila:   Odgovori s citatom

Imam eno vprasanje :

Napisan imam program kjer z casovnikom preverjam pritisk tipke (zraven pride v tej proceduri se delovanje nekega drugega cikla). Ce je tipka pritisnjena jaz klicem rutino (v tej rutini bi potem nastavljal meni z vecimi tipkami) izven te zanke, se pravi izven glavnega programa in se ne vrnem vec nazaj. Program bi bilo mozno od zacetka izvajati samo z resetom. Ali lahko to naredim ???
Upam da se razume.
V bistvu sem ze naredil ampak se mi nekje zalomi program se izvaja samo delno. Problemi se zacnejo ravno ko grem ven iz glavne zanke! Vcasih se kontroler odziva na pritisk tipke vcasih ne oz. je potrebno veckrat pritisnit itd.
Je prilozen ce se komu da pogledat ampak je kar obsezen.

Hvala,LP



16f877a.txt
 Opis:

Download
 Ime datoteke:  16f877a.txt
 Velikost datoteke:  15.76 KB
 Downloadano:  22 krat


_________________
Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

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


Powered by phpBB © 2001, 2005 phpBB Group