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


Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.20 Kraj: Črnomelj
|
Objavljeno: Tor Feb 14, 2012 11:24 pm Naslov sporočila: Mega8 --- Timer1 ---1us |
|
|
Pozdravljeni!
Zanima me ali je možno nastaviti Timer1 da bi deloval kot delay za 1 mikrosekundo
ter ali bi lahko z to hitrostjo postavljal pin porta iz 1 na 0 ter obratno.
Sem že naredil z interupti vendar na vsak način neče delovat ter mi ven daje frekvenco 2.5 MHz in če kaj spreminjam v ISP se ne zgodi nič :S
če ima kdo primer kode bi ga lepo prosil da objavi.
Najlepša hvala ter lep dan!! |
|
Nazaj na vrh |
|
 |
RUros Član


Pridružen-a: Čet 09 Mar 2006 22:26 Prispevkov: 1031 Aktiv.: 4.39
|
Objavljeno: Tor Feb 14, 2012 11:55 pm Naslov sporočila: |
|
|
Ja timer se da nastavit, da bo vsako 1us postavil zahtevo za prekinitev. Takt procesorja mora biti vsaj 1Mhz da bo to mogoče, če je višja tako ali tako uporabiš prescaler. Porte bi s tako hitrostjo še šlo spreminjat, do katere hitrosti pa točno ne vem. Če delaš PWM, lahko v ta namen skonfiguriraš izhod kot PWM.
Lahko kaj več poveš o tvojem primeru, kako si naredil z interrupti, in kako si nastavil timer oz. interrupte ? |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Sre Feb 15, 2012 12:07 am Naslov sporočila: |
|
|
Interupt vsako mikrosekundo? Malo razmisli, koliko strojnih ukazov ti ostane za izvajanje glavnega programa, tudi če v prekinitvi ne narediš ničesar... _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
gregoral Član

Pridružen-a: Pet 24 Nov 2006 9:42 Prispevkov: 688 Aktiv.: 3.04 Kraj: Ljubljana
|
Objavljeno: Sre Feb 15, 2012 12:22 am Naslov sporočila: |
|
|
Uh 1us bo težka.
Že samo dejstvo da se sproži interrupt ti "pobere"nekaj ciklov (5? 10? več?) odvisno od processorja.
Za tvojega poglej v datasheet.
Svetujem ti tudi da v prekinitveni rutini ne uporabiš:
- računanja s plavajočo vejico (float, double, ...)
- da nikakor ne uporabiš deljenja števil (ker se verjetno izvaja programsko)
- če je res nuja lahko množiš
- za množenje z (2, 4, 8, 16, ... 2^n) uporabi premik v levo (x << n)
- za deljenje z (2, 4, 8, 16, ... 2^n) uporabi premik v desno (x >> n)
Če imaš interrupt ki se pogosto proži šteje vsak cikel.
Dokler bo koda samo v tvoji prekinitveni funkciji bo za silo delalo,
ko boš pa dodal še drugo kodo se bodo pa čudne stvari dogajale.
LP, Gregor |
|
Nazaj na vrh |
|
 |
juref Član


Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.20 Kraj: Črnomelj
|
Objavljeno: Sre Feb 15, 2012 6:12 pm Naslov sporočila: |
|
|
Našel sem rešitev in ta je v CTC - ju juhuhu
Namen imam izdelati (testirati) AM oddajnik in bi rabil do 1,6Mhz frekvenco za krmiljenje tranzistorja. Najlepša vam hvala za pomoč |
|
Nazaj na vrh |
|
 |
juref Član


Pridružen-a: Tor 15 Dec 2009 11:45 Prispevkov: 226 Aktiv.: 1.20 Kraj: Črnomelj
|
Objavljeno: Sre Feb 15, 2012 11:48 pm Naslov sporočila: |
|
|
Stvar deluje kot Gorenje ura. Ni preveč dobro ampak se glasba sliši, ter z nastavlanjem frekvence je malo težavno brez osciloskopa.  |
|
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: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|