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


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Tor Sep 18, 2007 5:47 pm Naslov sporočila: 16f877A |
|
|
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
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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Tor Sep 18, 2007 6:46 pm Naslov sporočila: |
|
|
Odgovarjam sam sebi: Pozabil pobrisat STATUS,RP1
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Čet Sep 20, 2007 4:45 pm Naslov sporočila: |
|
|
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 |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Čet Sep 20, 2007 7:36 pm Naslov sporočila: |
|
|
imas pravilno nastavljene TRIS registre?
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Pet Sep 21, 2007 4:58 pm Naslov sporočila: |
|
|
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 |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Pet Sep 21, 2007 5:04 pm Naslov sporočila: |
|
|
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
Kaj bo naslednje - "zakaj luc ne deluje kadar imam ugasnjeno ?"
_________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Pet Sep 21, 2007 5:31 pm Naslov sporočila: |
|
|
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 |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Pet Sep 21, 2007 5:55 pm Naslov sporočila: |
|
|
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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Sob Sep 22, 2007 2:01 pm Naslov sporočila: |
|
|
"That's more like...I like it
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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Pon Sep 24, 2007 10:04 pm Naslov sporočila: |
|
|
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 |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.01
|
Objavljeno: Tor Sep 25, 2007 12:30 am Naslov sporočila: |
|
|
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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Tor Sep 25, 2007 5:38 pm Naslov sporočila: |
|
|
Deluje,hvala
_________________ Živleje ni potica, življeje je črn kruh. Bul ga šparaš bul je suh. Zato pa kr na mizo žjim. |
|
Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.01
|
Objavljeno: Čet Sep 27, 2007 5:48 pm Naslov sporočila: |
|
|
Š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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Čet Sep 27, 2007 7:33 pm Naslov sporočila: |
|
|
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 |
|
 |
kavelj22 Član


Pridružen-a: Tor 23 Jan 2007 23:56 Prispevkov: 465 Aktiv.: 2.08 Kraj: Ljubljana
|
Objavljeno: Tor Feb 19, 2008 4:55 pm Naslov sporočila: |
|
|
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
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 |
|
 |
|
|
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
|