 BaRaGoZ (19.08.2011 13:07, просмотров: 3896)
 BaRaGoZ (19.08.2011 13:07, просмотров: 3896)
День добрый, меня зовут Вячеслав, недавно купил КИТ фирмы кеил MCB1750 на базе МК lpc1758, и сразу же столкнулся с проблемой:Пишу под ИАР 6.1, прошивается все нормально, поигрался с пинами, тоже все в порядке, далее решил разобраться с прерываниями(до этого работал с lpc2138, там схема настройки прерываний совершенно другая нежели тут) и столкнулся с проблемой.Открыл пример, где генерится прерывание от таймера0 и в обработчике моргают лампочки, но в режиме дебага заметил, что в функцию обработчика прерывания программа не заходит а висит на строчке "B Default_Handler" из файла cstartup_M.c, проверил настройки запуска таймера и настройку прерывания, вроде все нормально, вот кусок кода настройки: // Init Time0  T0TCR_bit.CE = 0;     // counting  disable  T0TCR_bit.CR = 1;     // set reset  T0TCR_bit.CR = 0;     // release reset  T0CTCR_bit.CTM = 0;   // Timer Mode: every rising PCLK edge  T0MCR_bit.MR0I = 1;   // Enable Interrupt on MR0  T0MCR_bit.MR0R = 1;   // Enable reset on MR0  T0MCR_bit.MR0S = 0;   // Disable stop on MR0  // set timer 0 period  T0PR = 18-1;  T0MR0 = (TIMER0_IN_FREQ)/(18 * TIMER0_TICK_PER_SEC);  // init timer 0 interrupt  T0IR_bit.MR0INT = 1;  // clear pending interrupt  T0TCR_bit.CE = 1;     // counting Enable  NVIC_IntEnable(NVIC_TIMER0);  __enable_interrupt();и вот функция обработчика, по названию совпадающая со строчкой PUBWEAK TMR0_IRQHandler  из cstartup_M.c файла:void TMR0_IRQHandler (void){  /* Toggle LED1 */  LED1_FIO ^= LED1_MASK;  LedBlink();  /*clear interrupt */  T0IR_bit.MR0INT = 1;  /**/  NVIC_ClrPend(NVIC_TIMER0);}Отсюда делаю вывод что неправильно работает NVIC контроллер, может кто-нибудь сталкивался с данной проблемой? Заранее спасибо!