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

 
 
> Как определить когда Tx Shift Nios Uart закончил работу
Acvarif
сообщение Aug 10 2016, 15:32
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



По прерываниям производится выдача данных по Tx Uart Nios из некоторого буфера char Buff[4800]. Период повторения 1 сек. Все данные из буфера выдаются на скорости 115200 примерно за 0.4 сек. В програме для Nios есть острая необходимость определить момент когда будет выдан по Tx последний байт из буфера. Для этого использую бит TMT регистра статуса.
Код
unsigned char EmptyTxUart1()
{
    int sr;

    sr = IORD_ALTERA_AVALON_UART_STATUS(UART_0_BASE);
    if(sr & ALTERA_AVALON_UART_STATUS_TMT_MSK) return 1;
    else
    return 0;
}

Далее в теле программы
Код
if(!EmptyTxUart1() && !BeginReadContr) BeginReadContr = 1; else BeginReadContr = 0;

Вроде работает. Бит TMT устанавливается. Но устанавливается намнго раньше (~ 0.1 сек) чем будет выдан последний бит по Tx (~0.4 сек). Контроль установки BeginReadContr и сигнала Tx веду по осциллографу.
В чем тут хитрость? Как можно правильно пределить момент выдачи последнего бита из буфера Tx Nios Uart?

Сообщение отредактировал Acvarif - Aug 10 2016, 15:36
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
vadimuzzz
сообщение Aug 11 2016, 00:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



а если использовать TMT + EOP?
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Aug 11 2016, 09:50
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(vadimuzzz @ Aug 11 2016, 03:54) *
а если использовать TMT + EOP?

Да, спасибо. Должно сработать.
Go to the top of the page
 
+Quote Post

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

 


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


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