Timer INT routines:-
void TIMER2_IRQHandler(void) // Switch off solenoids 1-4
{
asm("CPSID i"); // Disable all interrupts
if ((LPC_TIMER2->IR & 0x01) != 0)
{
LPC_TIMER2->IR |= 1; // Clear Flag
if (oneshot == 1)
{
oneshot = 2;
LPC_GPIO_PORT->CLR[3] |= 0x00000010;
LPC_GPIO_PORT->CLR[2] |= 0x00000010;
LPC_GPIO_PORT->CLR[5] |= 0x00010000;
LPC_GPIO_PORT->CLR[2] |= 0x00004000;
LPC_GPIO_PORT->CLR[2] |= 0x00000004;
LPC_GPIO_PORT->CLR[2] |= 0x00000002;
LPC_GPIO_PORT->CLR[2] |= 0x00000001;
}
LPC_GPIO_PORT->CLR[3] |= 0x00000020;
}
if ((LPC_TIMER2->IR & 0x02) != 0)
{
LPC_TIMER2->IR |= 2; // Clear Flag
LPC_GPIO_PORT->CLR[3] |= 0x00000010;
}
if ((LPC_TIMER2->IR & 0x04) != 0)
{
LPC_TIMER2->IR |= 4; // Clear Flag
LPC_GPIO_PORT->CLR[2] |= 0x00000010;
}
if ((LPC_TIMER2->IR & 0x08) != 0)
{
LPC_TIMER2->IR |= 8; // Clear Flag
LPC_GPIO_PORT->CLR[5] |= 0x00010000;
}
LPC_TIMER2->IR |= 0xF0;
asm("CPSIE i"); // Enable all interrupts
}
//
//
//
void TIMER3_IRQHandler(void)
{
asm("CPSID i"); // Disable all interrupts
if ((LPC_TIMER3->IR & 0x01) != 0)
{
LPC_TIMER3->IR = 1; // Clear Flag
LPC_GPIO_PORT->CLR[2] |= 0x00004000;
}
if ((LPC_TIMER3->IR & 0x02) != 0)
{
LPC_TIMER3->IR = 2; // Clear Flag
LPC_GPIO_PORT->CLR[2] |= 0x00000004;
}
if ((LPC_TIMER3->IR & 0x04) != 0)
{
LPC_TIMER3->IR = 4; // Clear Flag
LPC_GPIO_PORT->CLR[2] |= 0x00000002;
}
if ((LPC_TIMER3->IR & 0x08) != 0)
{
LPC_TIMER3->IR = 8; // Clear Flag
LPC_GPIO_PORT->CLR[2] |= 0x00000001;
}
// LPC_TIMER3->IR |= 0xF0;
asm("CPSIE i"); // Enable all interrupts
}