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

Pridružen-a: Tor 05 Dec 2006 12:43 Prispevkov: 12 Aktiv.: 0.05 Kraj: Kranj
|
Objavljeno: Sre Dec 06, 2006 2:20 pm Naslov sporočila: timerji |
|
|
Zanima me zakaj se vpisuje v OPTION_REG tako...
org 0x000
start clrwdt ; clear watchdog timer
movlw b'11010111' ; assign prescaler, internal clock
; and divide by 256 see p. 106
option
movlw 0x00 ; set w = 0
tris portB ; port B is output
clrf portB ; port B all low
go bsf portB, 0 ; RB0 = 1, thus LED on p. 28
...ko pa odprem ustrezbno banko in shranim f v option_reg pa mi TMR0 ne dela? Zamislil sem si da mi samo 7-bit od tmr0 prepise na en izhod oz podalsam pauzo s stetjem tega bita?
LP; Rok |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Sre Dec 06, 2006 3:02 pm Naslov sporočila: |
|
|
Kaksna zmeda je pa to ? _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
bungee Član


Pridružen-a: Pon 07 Mar 2005 18:49 Prispevkov: 1479 Aktiv.: 6.24 Kraj: Ljubljana
|
Objavljeno: Sre Dec 06, 2006 3:30 pm Naslov sporočila: |
|
|
Tole pa ne pelje nikamor. racman napiši za katerega PIC-a pišeš. Potem opiši problem malo bolj jasno ...
In tako bo lažje odgovorit na tvoje vprašanje. Si vprašal nekako takole: zakaj se mi je ustavil avto? .... lahko odgovoriš na to samo z enim odgovorom .....  |
|
Nazaj na vrh |
|
 |
racman1 Član

Pridružen-a: Tor 05 Dec 2006 12:43 Prispevkov: 12 Aktiv.: 0.05 Kraj: Kranj
|
Objavljeno: Sre Dec 06, 2006 4:46 pm Naslov sporočila: |
|
|
se opravicujem....doma je sedaj bolj mir...
gre se za 16f84...zanima me pa zakaj ni dostopa v ustrezno banko in potem shranjeno v OPTION_REG, ampak je to zamenjano z OPTION?
org 0x000
start clrwdt
movlw b'11010111'
option
movlw 0x00
tris portB
clrf portB
go bsf portB, 0
call delay
bcf portB, 0
call delay
goto go
delay clrf tmr0
again btfss tmr0, 7
goto again
return
end |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Sre Dec 06, 2006 4:56 pm Naslov sporočila: |
|
|
Ker je tisti, ki je tole skropucalo sestavil skupaj, pozabil opisati svoje makro ukaze, ki so definirani nekje drugje. Smola - ce ves kaj naj bi program pocel, ga napisi sam od zacetka in ne bos imel tezav z muhami drugih avtorjev ... _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
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: Sre Dec 06, 2006 5:15 pm Naslov sporočila: |
|
|
Tako, na oko se mi zdi, da ne uporabljaš preklopa med bankami:
BSF STATUS,RP1 ;
BCF STATUS,RP0 ;
Ker je tvoja koda nekoliko nepregledna, bolj ugibam.
Jur |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Dec 06, 2006 6:20 pm Naslov sporočila: |
|
|
Jur,
načeloma bi morala instrukcija tris katera naj bi ostala zaradi kompatibilnosti z starejšimi mikrokontrolerji in naj bi bila ekvivalentna temu. Enako velja za option
Koda: |
movlw 0x00
clrf portB
bsf STATUS,RP0 ;bank1
movwf TRISB ;portb so izhodi
bcf STATUS,RP0 ;bank0
|
Racman, sama zadeva bo preglednejša, če boš pisal takole, ter dodal še kak komentar.
Koda: |
org 0x000 ;reset vektor
start
clrwdt
movlw b'11010111' ;
option
movlw 0x00
clrf portB
bsf STATUS,RP0 ;bank1
movwf TRISB ;portb so izhodi
bcf STATUS,RP0 ;bank0
go
bsf portB, 0
call delay
bcf portB, 0
call delay
goto go
;-----------------------------------
;podrutina definiranje kratke pavze
;----------------------------------
delay
clrf tmr0
again
btfss tmr0, 7
goto again
return
end ;eof
|
_________________ 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 Dec 07, 2006 2:16 pm Naslov sporočila: |
|
|
CLRWDT se v programu izvede samo na začetku. Načeloma bi se moral izvajati v zanki, da bi se preprečilo, da watchdog timer samodejno pritisne na reset. Če je wdt aktiven (iz priložene kode se tega ne vidi), program verjetno ne bo deloval pravilno.
Jur |
|
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
|