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

 
 
> Работа TXC в USART, Не могу разобраться с флагом "окончание передачи", помогите
fmdost
сообщение Aug 19 2007, 23:46
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606



Доброго времени суток!
Помогите разобраться с работой USART в tiny2313. Немогу понять как работает флаг TXC. В даташите написано что он выставляется по окончании передачи. Но там есть буферизация в 2 байта. Он выставляется если передал 1 байт или если передал всё?
Передаю сразу 2 байта, и жду прерывания, для переключения драйвера 485 на приём. Приёма на другом конце не происходит. Работает только если после передачи первого байта проверять флаг вручную и передавать второй байт после его установки. Соответственно так же переключаю на приём.
ЗЫ. В прерывании сбрасывал флаг записью в него 1. При передаче 2х байт запрещал прерывания для неразрывности, всё равно ничего не добился. Смотрел по осцылу время нахождения в режиме передача, но ничего непонял. Сколько реально времени (включая служебные биты 1-четности и 1-стоп 9-ый) будет передавать 2 байта усарт?

Сообщение отредактировал Т.Достоевский - Aug 20 2007, 00:03
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Aug 21 2007, 04:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Почему получается 2 прерывания по TXC при передачи 2-х байт не понял. может я не правильно помню и делаю иначе, но с таким не встречался.
На память TXC возникает при пустом буфере и выдачи стопового бита.
На я передачу делал так.
2 байта в буфер;
включить UDRE
по UDRE подкачивать данные
если новых двнных нет, то выключить UDRE и включить TXC
если TXC, то все переданно, переключиться на прием.

и таких вещей
Цитата
как бонус даже межсимвольный интервал непроизвольно получается.
у меня не было


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 21 2007, 10:59
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(arttab @ Aug 21 2007, 07:53) *
Почему получается 2 прерывания по TXC при передачи 2-х байт не понял. может я не правильно помню и делаю иначе, но с таким не встречался.
На память TXC возникает при пустом буфере и выдачи стопового бита.


Безусловно. Прямо так и написано:

Цитата
The Transmit Complete (TXC) flag bit is set one when the entire frame in the Transmit
Shift Register has been shifted out and there are no new data currently present in the
transmit buffer


Цитата
На я передачу делал так.
2 байта в буфер;
включить UDRE
по UDRE подкачивать данные
если новых двнных нет, то выключить UDRE и включить TXC
если TXC, то все переданно, переключиться на прием.

и таких вещей у меня не было


Ну в принципе даже разрешение TXC можно не дергать, если вы можете дать гарантию, что время реакции на UDRE не превысит времени передачи символа. Тогда TXC придет ТОЛЬКО ОДИН в конце пакета. Как раз, чтобы выключить передатчик на ADM485 smile.gif

Вообщем-то все культурно и правильно в камне. Работать в принципе по UDRE и надо, чтобы не было дырок между символами (они только уменьшают общую скорость передачи).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
IEC
сообщение Aug 21 2007, 13:42
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Цитата(Rst7 @ Aug 21 2007, 13:59) *
Работать в принципе по UDRE и надо, чтобы не было дырок между символами (они только уменьшают общую скорость передачи).

Оно то может и так, но привычка с 51 осталась. Там аналога UDRE нет.
Да и немного неудобно. UDRE устанавливается всегда, когда буфер на передачу пуст (срабатывание по состоянию). А если я не хочу передавать, надо прерывание запрещать.
Прерывание ТХС устанавливается по событию, сбросил после передачи последнего байта и свободен до следующей передачи.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Т.Достоевский   Работа TXC в USART   Aug 19 2007, 23:46
- - haker_fox   Цитата(Т.Достоевский @ Aug 20 2007, 08:46...   Aug 20 2007, 03:06
- - arttab   Заслали Вы в буфер байт или 2 байта. начинается пе...   Aug 20 2007, 04:04
|- - haker_fox   Цитата(arttab @ Aug 20 2007, 13:04) Но пе...   Aug 20 2007, 04:48
|- - Т.Достоевский   Цитата(arttab @ Aug 20 2007, 08:04) Засла...   Aug 20 2007, 10:44
|- - IEC   Цитата(Т.Достоевский @ Aug 20 2007, 13:44...   Aug 20 2007, 10:49
|- - Т.Достоевский   Цитата(IEC @ Aug 20 2007, 14:49) ВСЕГО ба...   Aug 20 2007, 11:02
|- - SasaVitebsk   Цитата(Т.Достоевский @ Aug 20 2007, 14:02...   Aug 20 2007, 14:56
- - vesago   Для 485 я пользую следующие конструкции: Код//POPT...   Aug 20 2007, 07:06
|- - Т.Достоевский   Цитата(vesago @ Aug 20 2007, 11:06) Код#p...   Aug 20 2007, 10:47
|- - vesago   Цитата(Т.Достоевский @ Aug 20 2007, 13:47...   Aug 21 2007, 09:47
- - IEC   Цитата(Т.Достоевский @ Aug 20 2007, 02:46...   Aug 20 2007, 10:46
- - defunct   ЦитатаРаботает только если после передачи первого ...   Aug 20 2007, 15:46
|- - Т.Достоевский   Цитата(defunct @ Aug 20 2007, 19:46) Не н...   Aug 20 2007, 20:11
|- - SasaVitebsk   Цитата(Т.Достоевский @ Aug 20 2007, 23:11...   Aug 20 2007, 22:56
|- - defunct   Цитата(Т.Достоевский @ Aug 20 2007, 23:11...   Aug 21 2007, 00:41
|- - Т.Достоевский   Цитата(defunct @ Aug 21 2007, 04:41) 2 TX...   Aug 21 2007, 02:06
|- - =GM=   To defunct. Посмотрел на ваш код. Цитата(defunct ...   Aug 22 2007, 10:09
|- - defunct   Цитата(=GM= @ Aug 22 2007, 13:09) Одно ме...   Aug 22 2007, 12:55
|- - =GM=   Цитата(defunct @ Aug 22 2007, 11:55) Да -...   Aug 23 2007, 09:19
|- - defunct   Цитата(=GM= @ Aug 23 2007, 12:19) Посмотр...   Aug 23 2007, 12:49
|- - =GM=   Цитата(defunct @ Aug 23 2007, 11:49) Есть...   Aug 23 2007, 16:14
|- - defunct   Цитата(=GM= @ Aug 23 2007, 19:14) Ну-ну, ...   Aug 23 2007, 17:54
|- - =GM=   Цитата(defunct @ Aug 23 2007, 17:54) Ваше...   Aug 23 2007, 21:29
|- - defunct   Цитата(=GM= @ Aug 24 2007, 00:29) Мой при...   Aug 23 2007, 21:57
|- - =GM=   Цитата(defunct @ Aug 23 2007, 21:57) Уж н...   Aug 23 2007, 22:22
|- - defunct   Цитата(=GM= @ Aug 24 2007, 01:22) Ну, это...   Aug 23 2007, 22:41
|- - =GM=   Открыл новую тему на предмет написания и использов...   Aug 24 2007, 20:19
|- - defunct   Цитата(Rst7 @ Aug 21 2007, 13:59) Вообщем...   Aug 21 2007, 11:47
||- - Rst7   Цитата(defunct @ Aug 21 2007, 14:47) Они ...   Aug 21 2007, 11:59
||- - defunct   Цитата(Rst7 @ Aug 21 2007, 14:59) Обоснуй...   Aug 21 2007, 15:48
||- - Rst7   Цитата(defunct @ Aug 21 2007, 18:48) Ну н...   Aug 22 2007, 05:20
|- - ReAl   Цитата(Rst7 @ Aug 21 2007, 12:59) Ну в пр...   Aug 22 2007, 06:40
- - Igor26   ЦитатаЧто вы понимаете под словом "отладчик...   Aug 21 2007, 05:19
- - WHALE   А AVRSTUDIO че не пользуете?Такие вещи там нормаль...   Aug 21 2007, 06:10
|- - Т.Достоевский   Цитата(WHALE @ Aug 21 2007, 10:10) А AVRS...   Aug 21 2007, 09:44
|- - Maik-vs   Цитата(Т.Достоевский @ Aug 21 2007, 13:44...   Aug 21 2007, 13:59
|- - WHALE   Цитата(Maik-vs @ Aug 21 2007, 17:59)...   Aug 21 2007, 17:45
|- - Maik-vs   Цитата(WHALE @ Aug 21 2007, 21:45) Дык у ...   Aug 22 2007, 06:13
- - SasaVitebsk   А я был очень рад увидеть два флага. Наверное посл...   Aug 21 2007, 20:29
- - SasaVitebsk   =GM=, при всём уважении к Вашим знаниям давайте бу...   Aug 23 2007, 18:16
- - WHALE   ЦитатаРекурсия – это сведение вычисления задачи не...   Aug 23 2007, 18:42
- - Т.Достоевский   С новым камнем всё заработало. Проблема была не с ...   Aug 27 2007, 21:29
- - Rst7   Цитата(Т.Достоевский @ Aug 28 2007, 00:29...   Aug 28 2007, 05:16
- - Maik-vs   Цитата(Rst7 @ Aug 28 2007, 09:16) 2 раза ...   Aug 28 2007, 09:24


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

 


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


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