Argon (10.03.2006 06:53, просмотров: 2152)
Только начинаю разбираться с LPC, проблемы с прерываниями. MEMMAP = 1 ; // user flash mode
//MEMMAP = 2 ; // user ram mode
T0IR=0xFF; // reset match and capture event interrupts
T0TC=0; // Clear timer counter
T0PR= 0; // No Prescalar
T0MR0=10000; // Count up to 10,000 for 100Hz interrupt
T0MCR = 3; // Reset Timer Counter & Interrupt on match
T0TCR = 1; // Counting enable
__disable_interrupt();
VICProtection = 0; // Accessed in User or privileged mode
VICVectAddr = 0; // Clear interrupt
VICIntSelect = 0; //Назначить все прерывания как IRQ
VICIntEnable |= 0x10; // Turn on Timer0 Interrupt
VICVectCntl0 = 0x20 | VIC_TIMER0; // IRQ type, TIMER 0 int enabled
VICVectAddr0 = (unsigned long)&Tmr0_IntOnMR0_isr; // Install ISR in VIC addr slot 0
__enable_interrupt(); // Global interrupt enable
и после этого - ступор!
проц крутится около 0-х адресов,
по адресу 0x18 - нули, что не похоже на вектор прерывания.
отлаживал и при прошивке во flash и при отладке из RAM, результат один.