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

 
 
> Проблема с UART'ом
CSB
сообщение Nov 27 2006, 13:13
Сообщение #1


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

Группа: Новичок
Сообщений: 100
Регистрация: 9-03-06
Пользователь №: 15 088



В симуляторе все работает отлично, но на железе передача идет одним коротким пакетом и затыкается (не устанавливается флаг готовности передатчика UART). Чего это может быть?

Сообщение отредактировал CSB - Nov 27 2006, 13:14
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Nov 27 2006, 16:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Ну все правильно. Вызов прерывания с вектором UART0TX_VECTOR сбрасывает флаг UTXIFG0. А у вас по окончании пакета при выполняющемся условии
Код
if (out_buffer.head == out_buffer.tail)

в TXBUF0 ничего не записывается. Чтобы UTXIFG0 был установлен для вызова прерывания нужно либо его установить программно, либо что-то записать в TXBUF0.
Т.е. вместо (или вместе) с
Код
U0IE |= UTXIE0/* + URXIE0*/;         // Разрешим прерывания от UART

нужно выполнить
Код
IFG0 |= UTXIFG0;
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:37
Рейтинг@Mail.ru


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