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;
}Message
LPC2138 Timer0 Interrupt
2005-12-08 by dodge1955
Attachments
- No local attachments were found for this message.