Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

LPC1754 UART interrupt
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=9352
Страница 1 от 1

Автор:  harleybg [ Нед Сеп 18, 2011 5:21 pm ]
Заглавие:  LPC1754 UART interrupt

Здравейте,

Започнах да пиша първата си програма за Cortex M3. Подкарах процесора, UART-a, но имам проблем с прекъсванията. Не стигам до генериране на прекъсване или изпълнение на обслужващата функция (когато изходния буфер на UART-a стане празен).
Ето какво правя:
Код:
void UARTinit ()
{
   unsigned int temp;

   LPC_PINCON->PINSEL0 = (LPC_PINCON->PINSEL0 & ~0xF0) | 0x50;           
   UART->LCR = (UART->LCR & ~0xFF) | 0x83;
   UART->DLM = 0;
   UART->DLL = 5;
   UART->FDR = 0xE5;
   UART->LCR &= ~(1<<7);            //DLAB    
   UART->FCR = 0xF;


   NVIC_SetPriority(UART0_IRQn, 0x04);   
   temp = UART->LSR;      
   NVIC_EnableIRQ(UART0_IRQn);            //enable UART interrupt
   UART->IER |= (1 << 1);      //THRE interrupt enable

   UART->THR = 0xAA;
   UART->THR = 0xAA;
   UART->THR = 0xAA;
}


...и тук вече чакам да се изпълни прекъсване, но това не се случва:
Код:
void UART0_IRQHandler ()
{

         LPC_GPIO0->FIOSET    = 0xFFFFFFFF; 

}

Автор:  head_up [ Нед Сеп 18, 2011 10:41 pm ]
Заглавие:  Re: LPC1754 UART interrupt

А глобално разреши ли прекъсванията?

Автор:  harleybg [ Нед Сеп 18, 2011 11:20 pm ]
Заглавие:  Re: LPC1754 UART interrupt

Тъкмо щях да пиша, че добавих:
__wfi(); //wait for interrupt
и успя да влезе в прекъсване

Но това не е правилният начин, тъй като процесора почва да чака само прекъсване

Оказа се, че съм забравил в main функцията накрая да добавя while(1);

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/