реклама на сайте
подробности

 
 
> Обработчик прерываний. SAM3S4B
sinh
сообщение Mar 26 2013, 05:34
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 15-11-12
Пользователь №: 74 397



Имеется МК SAM3S4B, столкнулся со следующей проблемой: не заходит в обработчик прерывания, вроде бы все делаю правильно: (разрешил глобольные прерывания __enable_irq();, разрешил прерывания в NVIC NVIC_EnableIRQ(..);, разрешил прерывания по приему/передачи USART_EnableIt(BOARD_USART_BASE, US_IER_RXRDY);
Обработчик имеет следующий вид:
CODE
void USART1_IrqHandler(void)
{
uint32_t status;

status = BOARD_USART_BASE->US_CSR;

if ((status & US_CSR_RXRDY) == US_CSR_RXRDY) {
recvDone = true;
USART_DisableIt(USART1, US_IDR_RXRDY)
}
if ((status & US_CSR_TXEMPTY) == US_CSR_TXEMPTY) {
sentDone = true;
USART_DisableIt(USART1, US_IDR_TXEMPTY)
}

}


Вот на этом коде не работает:
CODE

USART_ReadBuffer(BOARD_USART_BASE);
USART_EnableIt(BOARD_USART_BASE,US_IER_RXRDY);
while(!recvDone);

recvDone предварительно установлен false. Что я забыл или не учел?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01333 секунд с 7
ELECTRONIX ©2004-2016