startup_LPC11xx.rar

[LPC1114][uVision]zapis do portów

Witam, mam następujący problem: napisałem dwa proste programy, pierwszy testuje przerwanie od timera a drugi testuje przerwanie SysTick. Problem polega na tym że oba nie działają. W pierwszym przypadku program zamiast skoczyć do funkcji obsługi przerwania, wpada w nieskończoną pętlę.(w pliku startup_LPC11xx.s w linijce 196), a w drugim programie przerwanie nie zostaje zgłoszone. Progam1: #include "LPC11xx.h" void Timer16B0_init(void){ //konfiguracja timera LPC_TMR16B0->TCR=0x00000001; //timer enable LPC_TMR16B0->PR =0x00000010; //prescaler na 4 LPC_TMR16B0->MCR=0x00000001; LPC_TMR16B0->MR0=0x0000000F; NVIC_EnableIRQ(TIMER_16_0_IRQn); } int main(void){ Timer16B0_init(); __enable_irq(); while(1){} // loop } __irq void TIMER16_0_IRQHandler (void){ LPC_TMR16B0->TC=0x00000000; } program2: #include "LPC11xx.h" volatile uint32_t SysTickCnt; __irq void SysTick_Handler (void) { // SysTick Interrupt Handler (1ms) SysTickCnt++; } int main(void){ SystemInit(); SysTick_Config(50000000/1000 - 1); __enable_irq(); while(1){} // loop } Oba programy napisane są w uVision dla procesora LPC1114. Pomocy:!:

  • startup_LPC11xx.rar
    • startup_LPC11xx.s


Pobierz plik - link do postu