Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подпрограмма обработки прерывания.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
KisaVorobyaninov
Использую отладочный комплект AT91SAM7S-EK. Поставил среду IAR.
Настроил правильно USART на внешнее устройство. Подключил устройство
- вижу данные бегут, подпрограмма обработки прерывания вызывется правильно и многократно в регистре RHR тоже меняются битики приёмные но
в подпрограмме при этом когда считываю - получаю одно и тоже нелепое значение ...
Вот код
void Usart_c_irq_handler(void)
{
AT91PS_USART USART_pt = COM0;
unsigned int status;
char smbl;
AT91F_US_DisableIt(COM0,AT91C_US_RXBUFF );
while (!AT91F_US_RxReady(AT91C_BASE_US0));
smbl = (char )AT91F_US_GetChar(USART_pt);
AT91F_DBGU_Put((char)smbl);
Trace_Toggle_LED(LED4);
//* Reset the satus bit for error
USART_pt->US_CR = AT91C_US_RSTSTA ;
AT91F_US_EnableIt(COM0,AT91C_US_RXBUFF );
}
sergeeff
Что-то не слишком внятно вопрос сформулирован. В каком режиме запрограмирован USART (с DMA или без)? А кто будет читать статус? Только при его чтении сбрасываются флаги и, соответственно, будет обеспечена реакция на последующие прерывания.

Короче - сумбур.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.