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


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.71 Kraj: glej fogl
|
Objavljeno: Sre Mar 28, 2007 2:51 pm Naslov sporočila: lpc - koliko prostora zasede en timer |
|
|
Zakaj ima npr. lpc3138 samo 2 timerja (lpc 2103 npr. ima 4)? A en dodaten timer zavzame veliko prostora na silicijevi rezini? Zakaj jih ne dajo v vsak čip kar npr. 10? Koliko % bi se v takem primeru povečala cena? |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70656.40
|
Objavljeno: Sre Mar 28, 2007 8:36 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.71 Kraj: glej fogl
|
Objavljeno: Čet Mar 29, 2007 11:55 am Naslov sporočila: |
|
|
En (lahko tudi več) enostaven timer brez periferije bi lahko vgredili v vsak lpc, če ne zaradi drugega zato, da bi ga uporabil za enostavno delay funkcijo (baje je delay brez timerja zelo netočen). |
|
Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 15.97
|
Objavljeno: Čet Mar 29, 2007 1:51 pm Naslov sporočila: |
|
|
trot je napisal/a: |
En (lahko tudi več) enostaven timer brez periferije bi lahko vgredili v vsak lpc, če ne zaradi drugega zato, da bi ga uporabil za enostavno delay funkcijo (baje je delay brez timerja zelo netočen). |
Če sredi Delay zanke nastopi prekinitev, ki nato prednostno aktivira še kako komunikacijo, je pravilnost zgornje ugotovitve več kot očitna.
Delay se uporablja samo za časovno nekritične zakasnitve, kjer je s seštevanem korakov izračuna minimalen potreben čas za neko pavzico, ki se lahko brez škode krepko zavleče.
LP,
Igor _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
 |
tonko Član


Pridružen-a: Sob 25 Jun 2005 13:45 Prispevkov: 541 Aktiv.: 2.28 Kraj: Črnomelj
|
Objavljeno: Čet Mar 29, 2007 2:10 pm Naslov sporočila: |
|
|
Ali si razmislil če res potrebuješ toliko timerjev ?
Meni ponavadi zadostuje en timer katerega sprogramiram na ciklični interrupt npr 9600. Ta takt uporabljam kot osnovo za Softverski UART-TX , softverski delay timer v milisekundah , več softverskih timerjev v stotinkah , desetinkah sekund in sekundah. Vse to je z uporabo enega samega hardverskega timerja in vse je točno. Frekvenco cikličnega interrupta lahko pri ARMih nastaviš precej visoko , verjetno ne bi imel problemov pri 100khz cikličnega interrupta , seveda je pa precej odvisno od kode v interruptu.
Za primer ti povem da z 8051 poganjam tri koračne motorje , vsak lahko dela popolnoma neodvisno , s svojo frekvenco , s pospeševanjem in zaviranjem po rampi. Za vse tri uporabljam samo en hardverski timer. |
|
Nazaj na vrh |
|
 |
Proteus Član



Pridružen-a: Sre 15 Jun 2005 10:03 Prispevkov: 1943 Aktiv.: 8.18
|
Objavljeno: Čet Mar 29, 2007 2:28 pm Naslov sporočila: |
|
|
Natančno tako, kot je opisal Tonko. V prekinitveno rutino časovnika lahko vstaviš več spremenljivk, kjer jim lahko spreminjaš vrednost po poljubnem ključu.
Te spremenljivke lahko potem, izven prekinitvene rutine, uporabiš kot programske števce, zakasnitve itd...
Edini pogoj je, da programska oprema deluje v tako imenovanem kooperativnem multitaskingu, kjer podatke ne obdeluješ na način, da obtičiš in čakaš v kakšni zanki, temveč samo preveriš pogoje in greš na drugo opravilo. |
|
Nazaj na vrh |
|
 |
VolkD Član


 
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 59.92 Kraj: Divača (Kačiče)
|
Objavljeno: Čet Mar 29, 2007 2:55 pm Naslov sporočila: |
|
|
Matematično gledano je potrebno najti najmanjši skupni imenovalec za vse časovne zahteve. To je potem osnovni čas timerja. _________________ Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo. |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Čet Mar 29, 2007 4:51 pm Naslov sporočila: |
|
|
> najmanjši skupni imenovalec
Največji skupni delitelj si mislil? gcd.
Recimo da sta dogodka na 30 in 45.
Timer nastavimo na 15.
Prvi dogodek se bo izvajal vsako drugo prekoračitev, drugi pa vsak tretjo prekoračitev. |
|
Nazaj na vrh |
|
 |
VolkD Član


 
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 59.92 Kraj: Divača (Kačiče)
|
Objavljeno: Čet Mar 29, 2007 6:38 pm Naslov sporočila: |
|
|
ja mislil sem že dobro, napisal pa narobe !  _________________ Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.52
|
Objavljeno: Čet Mar 29, 2007 6:42 pm Naslov sporočila: |
|
|
Darko, si kar prav napisal - ce bi snow nekoliko premislil, preden je pametoval, bi se menda spomnil, da je imenovalec ("denominator"; kot v "lowest common denominator", kar je angleski izraz za iskani termin) dejansko "deljitelj" [v zapisu v obliki ulomka].
30/15 = 2 in 45/15 = 3, ce uporabim kar zgornji primer. Imenovalec = deljitelj = 15. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Pet Mar 30, 2007 9:13 am Naslov sporočila: |
|
|
Sokrat je napisal/a: |
Darko, si kar prav napisal - ce bi snow nekoliko premislil, preden je pametoval, bi se menda spomnil, da je imenovalec ("denominator"; kot v "lowest common denominator", kar je angleski izraz za iskani termin) dejansko "deljitelj" [v zapisu v obliki ulomka].
30/15 = 2 in 45/15 = 3, ce uporabim kar zgornji primer. Imenovalec = deljitelj = 15. |
Najmanjši (lowest) skupni deljitelj/imenovalec je pač 1.
Največji (greatest) skupni deljitelj/imenovalec (gcd in short) je pa 15.
Vem, da tudi ti veš kaj je to, ampak si se tudi sam narobe izrazil - zgolj na to sem že prvič hotel opomniti. Sedaj pa predlagam, da pustimo to in se vrnemo k temi.
gcd.py (python):
Koda: |
def gcd(a, b):
while a:
a, b = b%a, a
return b |
|
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.52
|
Objavljeno: Pet Mar 30, 2007 10:02 am Naslov sporočila: |
|
|
Po prespani noci sem sele opazil, da sem ob razlagi navedel napacen primer (priveslal sem namrec do obeh, GCD in LCD). Deljitelj je seveda "divisor". Moj lapsus. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
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: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|