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

 
 
> Тонкости работы USART (ну для tiny2313 точно)
90S1200
сообщение Jun 22 2006, 04:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 5-05-06
Пользователь №: 16 806



Собственно говоря хочется лишь уяснить некоторые детали которые в общем случае решаемы.
Так что скажем интерес чисто академический.
Дело вот в чем.
В манах написано что после запрета на передачу передача продолжается если во время запрета
в выходном буфере или сдвиговом регистре находятся непереданные данные.
Решил я воспользоваться этим. Мальчишество конечно. Можно выключить и после передачи.
Ну тут решил попробовать. Вдруг когда нибудь все в это упрется а так хоть опыт будет.
В первом варианте все работало отлично. Не знаю может если б тестить дня 3 непрерывно что и всплыло бы. А так заработало потыркал все равно работает сбоев нет.
Заказчик изменил условия. Переделал но эта часть оставалась неизменной.
Запускаю. Ошибки. Причем ошибки явно наступают случайным образом. Начал разбираться
все упирается в цикл где идет ожидание окончания передачи. В одних случаях флаг выставляется
в других нет. Вероятность 50/50. Мне казалось что флаги выставляются в любом случае по наступлению
события. Вопрос тогда а это событие наступило? Была передача или нет? Если была то почему флаг не стал. Если не было то почему не было. Ведь в буфере по любому есть непереданные данные.

Было бы интересно выслушать Ваши мнения
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Jun 22 2006, 09:57
Сообщение #2


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

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
А насчет флага: что могло его сбросить?
Насколько я понимаю такое событие не документировано.


Если в разных вариантах кода работает по разному, наверное где-то сбрасываться. Почему я сразу и предложил прерывание - сразу за одним аппаратым событием, наступит следующее и вы _гарантированно_ отловите флаг, если такой имел место.
Если нет - тогда запишем в глюки smile.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
90S1200
сообщение Jun 22 2006, 10:44
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 5-05-06
Пользователь №: 16 806



Цитата(beer_warrior @ Jun 22 2006, 13:57) *
Цитата
А насчет флага: что могло его сбросить?
Насколько я понимаю такое событие не документировано.


Если в разных вариантах кода работает по разному, наверное где-то сбрасываться. Почему я сразу и предложил прерывание - сразу за одним аппаратым событием, наступит следующее и вы _гарантированно_ отловите флаг, если такой имел место.
Если нет - тогда запишем в глюки smile.gif

Что значит где то?
Вы конечно не видите исходника но то что измененая программа ни коим образом не касается USART
точно. Если она влияет то я могу предположить лишь то что это просто магия.
Непрямое влияние рабочих регистров на регистры ввода вывода.
ТО что это глюк это мне ясно. Но какова его природа?
Вы подсказали мне интересную мысль.
Вероятно при запрете передачи регистр также флагов сбрасывается.
Тогда вопрос а насколько эта ситуация типична?
Допустим работает таймер. Переполнился стал флаг. Если таймер потом отключить то флаг также сброситься?
Это что получается что флаги сбрасываются и при отключении устройств за которыми они закреплены?
Go to the top of the page
 
+Quote Post
DS
сообщение Jun 22 2006, 10:46
Сообщение #4


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



Флаг при выключении, конечно сбрасывается. Иначе при включении состояние флага будет неопределенным.


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
90S1200
сообщение Jun 22 2006, 12:09
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 5-05-06
Пользователь №: 16 806



Цитата(DS_ @ Jun 22 2006, 14:46) *
Флаг при выключении, конечно сбрасывается. Иначе при включении состояние флага будет неопределенным.

А на основании чего вы сделали заключение что он сбрасывается?
Это ваши рассуждения или это данные даташитов или еще лучше эксперимент.
Лично мне ваш вывод не кажется само собой разумеющимся.


Цитата(Kovrov @ Jun 22 2006, 14:46) *
Цитата(90S1200 @ Jun 22 2006, 12:34) *


Цитата(Kovrov @ Jun 22 2006, 10:28) *

а что такое запрет на передачу
в смысле TXEN=0 ?

Точно

флаг UDRe или TXC?
скорее всего тхс да?

Ага txc
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 90S1200   Тонкости работы USART (ну для tiny2313 точно)   Jun 22 2006, 04:55
- - Kovrov   а что такое запрет на передачу в смысле TXEN=0 ?   Jun 22 2006, 06:28
- - beer_warrior   Судя по написанному, вы поллите флажок в цикле. Ту...   Jun 22 2006, 06:29
|- - arttab   Цитата(beer_warrior @ Jun 22 2006, 13:29)...   Jun 22 2006, 07:34
|- - 90S1200   Цитата(beer_warrior @ Jun 22 2006, 10:29)...   Jun 22 2006, 08:34
|- - Kovrov   Цитата(90S1200 @ Jun 22 2006, 12:34) Цита...   Jun 22 2006, 10:46
- - _Bill   Цитата(90S1200 @ Jun 22 2006, 07:55) Запу...   Jun 22 2006, 07:10
- - beer_warrior   ЦитатаЭто что есть некоторая вероятность безошибоч...   Jun 22 2006, 08:42
|- - 90S1200   Цитата(beer_warrior @ Jun 22 2006, 12:42)...   Jun 22 2006, 08:59
|- - otrog   Цитата(90S1200 @ Jun 22 2006, 16:09) Цита...   Jun 22 2006, 12:20
|- - 90S1200   Цитата(otrog @ Jun 22 2006, 16:20) Цитата...   Jun 22 2006, 12:39
- - GetSmart   Может вырежете кусок своего кода, общающегося с уа...   Jun 22 2006, 12:57
- - Kovrov   спинным мозгом чуйвствую что это из за разных мом...   Jun 22 2006, 15:20


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

 


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


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