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


Pridružen-a: Tor 21 Mar 2006 10:55 Prispevkov: 404 Aktiv.: 1.72 Kraj: okolica Vipave
|
Objavljeno: Ned Sep 02, 2007 7:45 pm Naslov sporočila: Prekinitev za TIM3 |
|
|
Živijo,
Imam en čuden problem. Prekinitev je vezana na timer 3 OC2. To je tudi edina omogočena prekinitev TIM3. Delovanje TIM3 preverjam z osciloskopom (izhod timerja vezan na pin) in dela OK.
Dogaja se mi, kot da se prekinitvena koda izvrši dvakrat. Če dodam v kodo klic "delay_us" (zakomentirana vrstica), dela OK.
Če dam resetiranje OC2 zastavice kot povsem zadnji ukaz v prekinitveni rutini, dela skoraj OK (občasno malo preskakuje). Resda teče stvar na ST ARMu, ampak mislim, da spada to vprašanje pod ARM jedro...
Zaključek: zgleda, kot da zastavice ne smem brisati prezgodaj.
volatile int tim_LED = 0;
// ----------------------------------------------------------------------------------
__irq void tim3_isr (void) {
if (tim_LED == 1) {
GPIO_WriteBit(LED_PORT, LED2, Bit_RESET);
tim_LED = 0;
}
else {
GPIO_WriteBit(LED_PORT, LED2, Bit_SET);
tim_LED = 1;
}
//delay_us(3);
TIM3->SR &= ~TIM_FLAG_OC2; // Clear Timer Overflow interrupt flag
VIC0->VAR = 0; // Acknowledge Interrupt
VIC1->VAR = 0;
}
LP Primož. |
|
Nazaj na vrh |
|
 |
PrimozL Član


Pridružen-a: Tor 21 Mar 2006 10:55 Prispevkov: 404 Aktiv.: 1.72 Kraj: okolica Vipave
|
Objavljeno: Ned Sep 02, 2007 8:47 pm Naslov sporočila: |
|
|
Živijo,
Mea culpa - v PWM načinu TIM3, ki ga uporabljam, se aktivira ICF1 (input capture flag).
No, aktivira se tudi OCF2. Njegov problem pa je, da je aktiven ves čas, ko je timer enak OC2R, ne pa samo takrat, ko prvič postane stanje enako (prehod). To slednje pa nikjer ne piše... Zato je bilo potrebno zastavico brisati čim kasneje (ko je timer že na naslednji vrednosti).
Nasploh je za moj okus dokumentacija za STjeve ARMe dokumentacija veliko slabša od NXP.
LP Primož. |
|
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: 502 dni
Powered by phpBB © 2001, 2005 phpBB Group
|