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


Pridružen-a: Sre 03 Sep 2008 11:19 Prispevkov: 10 Aktiv.: 0.05 Kraj: koracice
|
Objavljeno: Sre Sep 03, 2008 1:40 pm Naslov sporočila: Generator impulzov |
|
|
Zanima me kako narediti generator impulzov oz. kako zgleda program v Bascom-u. Frekvenca impulzov naj bo točno 1 Hz.
Mikrokontroler imam ATtiny 2313, kvarc je 4MHz.
Po datasheet-u bi naj za output bil pin b.2. |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Sre Sep 03, 2008 9:14 pm Naslov sporočila: |
|
|
ne poznam bascoma ampak vseeno:
loop1:
out = 1
wait <dolžina pulza>
out = 0
wait <1 sekunda minus dolzina pulza zgoraj minus čas izvajanja vseh instrukcij brez wait>
goto loop1 _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sre Sep 03, 2008 10:00 pm Naslov sporočila: |
|
|
Ja, v Bascomu bo nekaj takega:
Koda: |
Do
PORTX.y = 1
Waitms 1
PORTX.y = 0
Waitms 999
Loop |
To je pač tako, da imaš signal dolg 1 milisekundo. Če dolžina signala ni važna (oziroma zadostuje nekaj us), narediš takole:
Koda: |
Do
PORTX.y = 1
PORTX.y = 0
Wait 1
Loop |
Zaradi Wait ukazov - največja vrednost naj bi namreč bila 250 - ne rabiš skrbeti. Če imaš najnovejši (ni nujno, lahko je tudi starejši) Bascom-AVR ti take napakice sam razbije na pravilne. _________________ Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
|
|
Nazaj na vrh |
|
 |
jstajnko Član


Pridružen-a: Sre 03 Sep 2008 11:19 Prispevkov: 10 Aktiv.: 0.05 Kraj: koracice
|
Objavljeno: Čet Sep 04, 2008 12:44 pm Naslov sporočila: |
|
|
Kako pa se to naredi s timer-ji? Npr: da bi impulze pošiljal z 40 kHz?
Z ukazi wait- ms, - us, časi niso realni, vedno zaostaja. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Čet Sep 04, 2008 12:54 pm Naslov sporočila: |
|
|
Za precizen timing raje v asemblerju naredi. Natančnost je brez problemov lahko dolžina ene instrukcije.
Seveda je točnost še vedno odvisna od točnosti oscilatorja... _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
upornik Član

Pridružen-a: Ned 09 Jan 2005 22:35 Prispevkov: 261 Aktiv.: 1.10 Kraj: Celje
|
Objavljeno: Čet Sep 04, 2008 12:57 pm Naslov sporočila: |
|
|
Timer moraš najprej vključiti in ustrezno nastaviti v registrih namenjenih za to. Nato lahko v programu zapišeš, da ti timer sproži prekinitev. V prekinitveni rutini enostavno zapišeš ukaz, ki ti invertira vrednost tvojega izhoda. Toda, ne morem ti bolj pomagati, ker ne programiram v Bascomu... |
|
Nazaj na vrh |
|
 |
jstajnko Član


Pridružen-a: Sre 03 Sep 2008 11:19 Prispevkov: 10 Aktiv.: 0.05 Kraj: koracice
|
Objavljeno: Čet Sep 04, 2008 3:37 pm Naslov sporočila: |
|
|
gumby kako bi pa zgledal program v asemblerju za moj primer ( generiranje impulzov 40 kHz) ?
Kje dobiti program? |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Sob Sep 06, 2008 10:04 am Naslov sporočila: |
|
|
Program napišeš
Timerji pa imajo možnost hardverskega togglanja izhodnega pina. To bo po moje še najboljša varianta. _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
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
|