ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
288977 Топик полностью
Coma_ndeR (06.12.2011 21:27, просмотров: 98) ответил ComandeR на Использую lpc2478. Настраиваю прерывания. В регистры адреса и приоритета идет запись, прерывание срабатывает, а вот в VICAddress запись адреса обработчика прерывания не происходит. Что это может быть? Кто с таким сталкивался? Заранее благодарен.
Извиняюсь. Проверяю под jtag. Вот код: #ifdef __lpc2478__ #include <nxp/iolpc2478.h> #endif __irq __arm void irq_handler (void); __irq __arm void irq_handler (void) { void (*interrupt_function)(); unsigned int vector; vector = VICADDRESS; // Get interrupt vector. interrupt_function = (void(*)())vector; if(interrupt_function != 0) { interrupt_function(); // Call vectored interrupt function. } VICADDRESS = 0; // Clear interrupt in VIC. } После срабатывания прерывания, в строчку vector = VICADDRESS; // Get interrupt vector программа входит и считывает значение из VICADDRESS равное 0. В отладчике в поле отображения регистров VIC тоже значение VICADDRESS равно 0. Проверял на двух типах прерываниях - Timer0 и EXTINT0. Они разрешены и настроены правильно.