Forum: Mikrocontroller und Digitale Elektronik LPC2148: Probleme mit Timer0 Capture-Interrupt


von LastPub (Gast)


Lesenswert?

Moin,

ich möchte bei einem LPC2148 den Port P0.28 als externen
Interrupt benutzen, Entwicklungsumgebung ist WinArm.
Aber irgendwie wird der Interrupt nicht ausgelöst, obwohl
das Signal sehr wohl am entsprechenden Pin zu messen ist.

Kann mir jemand sagen, was ich bei der Initialisierung falsch mache?
1
// initialize the interrupt vector 
2
VICIntSelect &= ~VIC_BIT(VIC_TIMER0);  // TIMER0 selected as IRQ 
3
VICVectCntl4 = VIC_ENABLE | VIC_TIMER0;  // TIMER0 on VIC vector 4 
4
VICVectAddr4 = (uint32_t)ButtonISR;  // address of the ISR 
5
VICIntEnable = VIC_BIT(VIC_TIMER0);  // TIMER0 interrupt enabled 
6
// Port P0.28 -> AD0.1/Capture 0.2
7
// PIN 25:24
8
PINSEL0 = (PINSEL0 & ~0x03000000) | 0x02000000;
9
// enable timer0 interrupt on faling edge of CR2 capture
10
T0CCR |= TCCR_CR2_I | TCCR_CR2_F;

Gruß
LastPub

von Mario P. (mariopieschel)


Lesenswert?

PINSEL0 = (PINSEL0 & ~0x03000000) | 0x02000000;
ist falsch!!!

versuche mal das hier:
PINSEL1 = (PINSEL1 & ~(1L<<25) ) | (1L<<24);

eventuell muss der Timer noch gestartet werden:
T0TCR = 1;

enableIRQ();// Interrupts erlauben

Ich gehe mal davon aus, dass Du EINT0-3 anderwertig belegt hast, sonst 
währen diese die richtige Wahl.

von LastPub (Gast)


Lesenswert?

Ups ... stimmt PINSEL0 ist falsch. Wer lesen kann ist
klar im Vorteil :-)), vielen Dank.

Aber es geht immer noch nicht.

EINT0-3 sind bei mir leider schon belegt, deswegen wollte
ich auf die Capture-Eingänge ausweichen.

Gruß
LastPub

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.