Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

LPC2138 Timer0 Interrupt

2005-12-08 by dodge1955

Can anyone tell me why my interrupt is not firing? The T0IR flag is
set upon rollover of the TIMER0 32 bit timer, but my code is not
vectored to the interrupt code. My variable 'system_timer' never gets
decremented.

unsigned long system_timer, j;

void decrement_timers() __irq
{
// occurs 896 times per second

system_timer--;

T0IR |= 1;
}

int main()
{
VPBDIV = 1;

// set up delay timer (TIMER 0)

VICIntSelect = 0; // all interrupts classified as IRQs
VICVectCntl0 = 0x00000024;
VICVectAddr0 = (unsigned int) decrement_timers;
VICIntEnable = 0x00000010;

// Disable Timer0 and Reset Interrupt Flag

T0TCR = 0;
T0IR |= 1;

T0MR0 = 0;
T0MCR = 1;

T0CTCR = 0;
T0PR = 0;
T0TCR = 1;

// just an infinite loop to check Timer0

system_timer = 4000;

j = 0;
for(;;)
{
j = j + 2;
}

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.