Forum: Mikrocontroller und Digitale Elektronik lpc210x timer mit interrupt


von julian (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein kleines Problem mit dem Versuch den Timer0 des lpc2103 zu 
benutzen. Ich initialisiere wie folgt:
1
void setup_timer()
2
{
3
    /* setup timer0 */
4
    T0MR0 = 1875; // 31.25 u sec
5
    T0MCR = 3; // Interrupt and Reset on MR0
6
    T0TCR = 1; // Timer0 Enable
7
8
    /* set timer interrupt */
9
    VICVectCntl0 = 0x20 | 4; // use it for Timer 0 Interrupt
10
    VICVectAddr0 = (unsigned long) timer0; // set interrupt vector in 0
11
12
    /* enable interrupts */
13
    VICIntSelect &= ~(1 << 4);
14
    VICIntEnable |= (1 << 4);
15
}

Leider wird aber die Interrupt-Routine timer0() nie aufgerufen. Muss ich 
noch weitere Initialisierungen machen?
Wäre für jeden Tipp dankbar!

Gruß,
Julian

von Wilhelm F. (Gast)


Lesenswert?

julian schrieb:

>Leider wird aber die Interrupt-Routine timer0() nie aufgerufen.

Ist die Funktion richtig deklariert, als Interrupt?

Sonst sieht es aber ordnungsgemäß aus.

Ich verwendete den LPC2129, und denke, daß der LPC2103 ähnlich ist.

Wie ist der Reset-Zustand des Registers PCONP? Ist da Timer0 frei 
gegeben? Kannst du feststellen, ob der Timer arbeitet? Bei VICIntEnable 
kannst du das ODER-Symbol weg lassen, denn Bits können in diesem 
Register nur gesetzt und nicht gelöscht werden.

von julian (Gast)


Lesenswert?

Es war tatsächlich die Methoden-Deklaration bei der ich das 
interrupt-Attribut vergessen hatte....... hust

Danke!

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.