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

 
 
> UART для BF 533, обработчик прерывания RX
bychkov_vladimir
сообщение Jul 27 2007, 13:23
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 106
Регистрация: 1-06-05
Из: Подольск
Пользователь №: 5 629



Добрый день всем !
кто может пояснить мне как правильно построить обработчик прерывания по приему данных UART.
Обработчик должен срабатывать по флагу DR регистра UART_LSR.
путь действий следующий. настраиваюсь на нужную скорость - передача данных из процессора идет, идет запись в файл и т.д. с этим все превосходно.
настраиваю прерывания: отображаю прерывание периферии на прерывание ядра :
*pSIC_IAR1 = 0xf3ffffff ;
снимаю маски :
*pSIC_IMASK = 0x00004000;
включаю обработчик
register_handler(ik_ivg10, UARTRx_ISR);
разрешаю прерывание:
*pUART_IER =0x1;//Enable interrupts for receive

и собственно сам обработчик:

EX_INTERRUPT_HANDLER(UARTRx_ISR)
{

REC_Data = *pUART_RBR;
ssync();
do {;}
while (!(*pUART_LSR & TEMT)) ; //
*pUART_THR = REC_Data ;
ssync();

}

пробывал буфферизировать входные данные не помогает.
тестирую следующим образом - в HypTerminal. работаю посимвольно - пытаюсь ввести ряд символов
записать их в массив, а потом выдать обратно.
но с выше описанным подходом ничего не получается.
Буду благодарен за помощь !
Заранее спасибо !
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:14
Рейтинг@Mail.ru


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