[an error occurred while processing this directive]
|
typedef void (*int_handler_t)();
#pragma vector = IRQV
__irq __arm void IRQ_handler(void) {
(*(int_handler_t)VICVectAddr)(); // Get address from VIC, execute handler
VICVectAddr = 0; // Clear interrupt in VIC.
}void EINT0Irq(void)
{
LedBlink(); // Инвертируем (мигаем светодиодом)(тоже работает)
EXTINT = 0x00000001;
VICVectAddr = 0x00000000;
}int main()
{
FrecInit();
LedInit(); // Это все работаетPINSEL0=0x0000000C; // Включим EINT0
EXTMODE=0x00000001; //
VICVectCntl0=0x0000002E; // Слот для прерывания EINT0
VICVectAddr0=(unsigned) EINT0Irq; // Адрес обработчика
VICIntEnable = 0x00004000; // Разрешим INT0__enable_interrupts();
while(1) {
}
}
E-mail: info@telesys.ru