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


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Pet Mar 03, 2006 9:23 am Naslov sporočila: Branje 16-bitnega (TMR1) števca |
|
|
Zdravo!
Zanima me kako je najbolje/najlepše pravilno prebrati in resetirati 16 bitni števec na PICu?
a) večkratno branje TMR1H oz. TMR1L in nato primerjanje za koliko se je določeni števec povečal. Tudi za reset je verjetno podobno? Da je potrebno večkrat vpisati v registre, da bo zadeva ok.
b) preprosto izklopiti TMR1 (z TMR1ON bitom) in v miru narediti branje in reset števca.
c) ?
Prosim za kakšne komentarje/nasvete glede tega.
Delam pa z pic16f876, programiram pa v C (hi-tech) oziroma asm (mplab). |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Ned Mar 12, 2006 6:09 pm Naslov sporočila: |
|
|
Sem pol lepo naredil, da se timer izklopi in preberem ven vrednost in napišem notri 0.
S pomočjo tega sem naredil preprost obratomer na ledice za avto. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.58
|
Objavljeno: Ned Mar 12, 2006 6:52 pm Naslov sporočila: |
|
|
Na drugi arhitekturi (a gre konec koncev za podobno stvar) bi to najlazje izvedel brez ustavljanja stevca takole:
Branje: preberes TMR1L, preberes TMR1H, pristejes vrednosti iz TMR1L stevilo ciklov timerja, ki bi pretekli med branjem prve in druge vrednosti TMR1L in ce je carry postavljen (= ce pride vmes do overflowa) povecas vrednost iz TMR1H za 1. Preberes spet TMR1L in za tem ukazom bo shranjena iz TMR1H in TMR1L tocno vrednost timerja v trenutku zadnjega ukaza te sekvence.
Resetiranje: napises 0 v TMR1L, napises 0 v TMR1H in se enkrat 0 v TMR1L; za tem ukazom bo timer tocno 0x0000 (= resetiran).
Oboje je seveda ob predpostavki, da zelis tocno vrednost timerja preden se izvaja koda naprej - ce bi rad kriticni trenutek premaknil (recimo cimbolj nazaj proti zacetku izvajanja ene ali druge sekvence), moras seveda postopek nekoliko prilagoditi. |
|
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: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|