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

Pridružen-a: Čet 06 Jan 2005 13:55 Prispevkov: 32 Aktiv.: 0.14 Kraj: Celje
|
Objavljeno: Tor Jan 18, 2005 10:31 am Naslov sporočila: TIMER |
|
|
Pozdravljeni!
Začetnika v programiranju s PIC zanima kakšne so praktične rešitve zakasnitev, ki trajajo nekaj ur? Dejansko bi potreboval impulz vsakih nekaj ur?
Program bi napisal v assemblerju!
Lep pozdrav in hvala za odgovore!
|
|
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: Tor Jan 18, 2005 11:04 am Naslov sporočila: |
|
|
Citiram: |
Dejansko bi potreboval impulz vsakih nekaj ur? |
Tole ne predstavlja kakega posebnega problema. V koliko želiš točen čas uporabiš recimo TMR0 prekinitev. Če bi recimo uporabil oscilator 4Mh bi vzel preddelilnik za TMR0 1/16 ter naredil korekcijo samega TMR0 tako, da se bi prekinitev izvajala vsake 4ms. Štel bi prekinitve. Ko jih bo 250 je potekla 1s. Šteješ sekunde ... ko jih je 60 je 1minuta ko je 60minut je 1h itd... Seveda bi v primeru uprabe TMR0 prekinitve lahko procesor delal še kaj drugega.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Tor Jan 18, 2005 6:14 pm Naslov sporočila: |
|
|
Lahko pa narediš tudi števec z kurjenjem procesorskih ciklov. Takrat procesor ne dela nič drugega kot šteje cikle. Silvotova rešitev univerzalno gledano verjetno boljša, vendar tudi ta v določenih primerih popolnoma zadošča.
|
|
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: Tor Jan 18, 2005 9:06 pm Naslov sporočila: |
|
|
Seveda, kot pravi Highlag lahko "zankaš" program dokler ne poteče željen čas. A ta varinata ima več slabih kot dobrih lastnosti. Kot prvo je tukaj težje izračunat točen čas. Če boš "vmes" želel še kaj delat boš moral ta čas ukalkulirat v čas pavze sicer bo čas začel zahajat. Elegantnejša rešitev je uporaba kakega že vgrajenega časovnika nap. TMR0.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
upornik Član

Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.10 Kraj: Celje
|
Objavljeno: Pon Jan 31, 2005 6:49 pm Naslov sporočila: |
|
|
Zdravo!
Mene pa zanima,kako bi najenostavnejše naredil 1s dolgo pavzo v zbirniku.
Kaj je pravzaprav boljše,narediti pavzo npr. z nekimi ukazi ki porabljajo čas,ali
z uporabo Timerja.Timerja še žal ne znam uporabljati,vendar bi bil zelo vesel če bi mi kdo razložil kako narediti 1s dolgo pavzo na oba načina.
Hvala za odgovor!
|
|
Nazaj na vrh |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.03 Kraj: Črnuče
|
Objavljeno: Pon Jan 31, 2005 7:32 pm Naslov sporočila: |
|
|
Prilagam "mojo" rutino za zakasnitev.
Priloženemu programčku boš moral dodati še kakšen ukaz, da bo delela kaj koristnega.
Pa še to 1s zakasnitve je 1s samo pri 4MHz procesorju! Če je procesor hitrejši bo sekunda krajša.
Opis: |
|
 Download |
Ime datoteke: |
zakasnitev_1s.txt |
Velikost datoteke: |
2.15 KB |
Downloadano: |
45 krat |
|
|
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
|