Yahoo Groups archive

Lpc2000

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

Message

Re: interrupt lost (all)

2005-11-29 by ualbe

Dear Ake,
I tested your VIC sequence but it still doesn't work.
I'm reading my code but It seem correct.
Here it is an example
thanks

Alberto

static init(void)
{
    // Init Vector Interrupt Controller
    VICIntEnClr = 0xFFFFFFFFL; // Disable all Ints
    VICIntSelect = 0x00000000L;
    
    // Install Default IRQVec
    VICDefVectAddr = (unsigned long) DefaultISR; // set interrupt 
vector
    
    // Initialisation of CAN interfaces
    // CAN interface 1, use IRQVec0, at 125kbit
    CANAll_Init(1,0,CANBitrate125k_60MHz); 
    
    // CAN interface 2, use IRQVec1, at 125kbit
    CANAll_Init(2,1,CANBitrate125k_60MHz); 
    
    // Set CAN Err ISR to IRQVec2
    CANAll_SetErrIRQ(2);
    
    // Initialize Timer Interrupt
    T0MR0 = 5999; // 100 microseconds = 6.000-1 counts
    T0MCR = 3; // Interrupt and Reset on MR0
    T0TCR = 1;  // Timer0 Enable
    
    // Set Timer0 ISR to IRQVec3
    VICVectAddr3 = (unsigned long) Timer0ISR; // set interrupt vector
    VICVectCntl3 = 0x20 | 4;  // use it for Timer 0 Interrupt
    VICIntEnable = 0x00000010;  // enable Timer0 Interrupt

}

void Timer0ISR (void) 
{
  gTimerTick++;
  T0IR = 1; // Clear interrupt flag
  VICVectAddr = 0xFFFFFFFF; // Acknowledge Interrupt
}

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.