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



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.09 Kraj: Kobarid
|
Objavljeno: Sob Dec 04, 2010 7:22 pm Naslov sporočila: LPC21xx proženje prekinitve |
|
|
Že 3. ure si razbijam glavo, kako bi izvedel števec obratov.
Zamislil sem si tako, da mi prekinitev na P0.20 (EINT3) proži senzot. Ta mi vklopi timer. Pri naslednji prekinitvi preberem vrednost timerja in izračunam obrate.
Teorija je lepa stvar. Praksa pa je drugačna.
Hec je v tem, da je prekinitev prožena non stop, ko je senzor na poziciji. Se pravi rad bi, da se mi prekinitev proži le enkrat in je onemogočena do naslednjega prehoda senzorja (prekinitve)
Kakšen predlog bi bil piva vreden.....  _________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Sob Dec 04, 2010 7:28 pm Naslov sporočila: |
|
|
EXTMODE in EXTPOLAR registra? Če ti "non stop" proži EINT3 prekinitev. |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.09 Kraj: Kobarid
|
Objavljeno: Sob Dec 04, 2010 7:54 pm Naslov sporočila: |
|
|
Uh, ne poznam. Res bi te lepo prosil za kratko kodo, da proži samo ob prehodih skozi 0. _________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Sob Dec 04, 2010 8:19 pm Naslov sporočila: |
|
|
Kaj pomeni prehod skozi 0?
Za EINT3 narediš inicializacijo na tak način:
Koda: |
/* User manual == UM10139_2 */
/* Če želiš interrupt ob prehodu iz 0 na 1 */
EXTINT |= (1 << 3); /* pobrišeš interupt (User manual str 29, odstavek 5.4, Note) */
EXTMODE |= (1 << 3); /* nastaviš edge sensitive interrupt (User manual str 30, Table 16) */
EXTPOLAR |= (1 << 3); /* nastavi rising edge sensitive (User manual str 30, Table 17) */
|
|
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.09 Kraj: Kobarid
|
Objavljeno: Sob Dec 04, 2010 8:34 pm Naslov sporočila: |
|
|
TNX
Sedaj mi deluje dosti bolje
Samo sedaj mi prekinitev proži iz prehoda 0 na 1 in iz 1 na 0.... No to se da za silo rešiti tudi z filtrom, da je vsaka druga prekinitev veljavna. Hvala za pomoč ! Ne bom pozabil na piva, če prideš kaj na pitnik! _________________ Lep dan
Simon |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Sob Dec 04, 2010 8:45 pm Naslov sporočila: |
|
|
SimonS je napisal/a: |
Samo sedaj mi prekinitev proži iz prehoda 0 na 1 in iz 1 na 0.... |
Hm... Z nastavitvami, kot sem jih podal, bi moralo prožiti samo iz 0 na 1. Sem sedaj še enkrat preveril in sem pravilno napisal.
Interrupt iz 0 na 1 in potem še iz 1 na 0 bi pomenil proženje interrupta na obe fronti, kar pa pri teh čipih sploh ni mogoče. |
|
Nazaj na vrh |
|
 |
RUros Član


Pridružen-a: Čet 09 Mar 2006 22:26 Prispevkov: 1031 Aktiv.: 4.38
|
Objavljeno: Sob Dec 04, 2010 8:52 pm Naslov sporočila: |
|
|
Kako pa izvedeš prekinitev ? Ali simuliraš z gumbom, ker ti lahko kašen debounce nagaja in ti potem namesto ene prekinitve šteje več . |
|
Nazaj na vrh |
|
 |
SimonS Član



Pridružen-a: Čet 01 Jul 2004 11:18 Prispevkov: 4770 Aktiv.: 20.09 Kraj: Kobarid
|
Objavljeno: Sob Dec 04, 2010 9:09 pm Naslov sporočila: |
|
|
Verjetno bo res krivec poplesavanje kontakta tipke. Bom jutri preizkusil z senzorjem. Sedaj pa res grem odpočiti možgane. Res hvala za pomoč! _________________ Lep dan
Simon |
|
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: 7 dni
Powered by phpBB © 2001, 2005 phpBB Group
|