Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Программный приемник по UART

Непрочитано 21.06.2012, 13:53  
Picman
Прописка
 
Регистрация: 29.06.2005
Сообщений: 153
Сказал спасибо: 111
Сказали Спасибо 46 раз(а) в 32 сообщении(ях)
Picman на пути к лучшему
По умолчанию Re: Программный приемник по UART

"А Что Здесь Подразумевается Под Bit_rxd? И Почему Bit = 0x5e, А Half_bit = 0x30?"
Bit_rxd это вход приемника(у меня это MCLR). 0x5e и 0x30 задержки на длительность бита и половинки. Такие получились для скорости 9600 и примененных функций задержки. Если применять для одной скорости приема, то можно просто задать нужные задержки без дефайнов.
Реклама:
Picman вне форума  
Непрочитано 21.06.2012, 17:32  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Picman Посмотреть сообщение
" 0x5e и 0x30 задержки на длительность бита и половинки.
Что теперь 0x30*2=0x5E?
_Артём_ вне форума  
Непрочитано 21.06.2012, 18:03  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: Программный приемник по UART

Нет, конечно.
Тут дело в следующем. Длительность бита при скорости 9600 равна 104 мкс. При приёме байта нужно в цикле проверять состояние ножки
Код:
if (Bit_Rxd)
ровно через каждые 104 мкс. В цикле вместе с задержкой DelayUs(Bit); есть ещё другие команды. Поэтому время задержки 0х5Е = 94 мкс плюс время на остальные команды дают в сумме время одного прохода цикла как раз 104 мкс.
Та же история и с половинкой длительности бита. С момента возникновения прерывания от стартового бита до опроса ноги Bit_Rxd должно пройти ровно 1.5*104 мкс, чтобы попасть точно на середину первого бита данных. Опытным путём, скорее всего, получилось Half_bit = 0x30 для нужной задержки.

Последний раз редактировалось Yurkin2007; 21.06.2012 в 18:09.
Yurkin2007 вне форума  
Непрочитано 21.06.2012, 18:27  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Программный приемник по UART

Сообщение от Yurkin2007 Посмотреть сообщение
Нет, конечно.
Тут дело в следующем. Длительность бита при скорости 9600 равна 104 мкс. При приёме байта нужно в цикле проверять состояние ножки
Код:
if (Bit_Rxd)
ровно через каждые 104 мкс. В цикле вместе с задержкой DelayUs(Bit); есть ещё другие команды. Поэтому время задержки 0х5Е = 94 мкс плюс время на остальные команды дают в сумме время одного прохода цикла как раз 104 мкс.
Та же история и с половинкой длительности бита. С момента возникновения прерывания от стартового бита до опроса ноги Bit_Rxd должно пройти ровно 1.5*104 мкс, чтобы попасть точно на середину первого бита данных. Опытным путём, скорее всего, получилось Half_bit = 0x30 для нужной задержки.
Я примерно так и думал.
Но решение какое-то ... нехорошее.
Нельзя использовать что-то аппаратное? Захват или что ещё?
_Артём_ вне форума  
 

Метки
важно
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программный пакет NUMERI alvadep Делимся опытом 0 14.11.2011 13:28
Программный декодер шины LIN double_dash Микроконтроллеры, АЦП, память и т.д 0 23.09.2011 10:20
Программный watchdog alexgap Микроконтроллеры, АЦП, память и т.д 8 31.10.2010 12:38
Программный сброс в мега под IAR maxik_k42 Микроконтроллеры, АЦП, память и т.д 10 13.09.2010 19:16
Опрос АЦП через программный SPI AVR Iamuser Микроконтроллеры, АЦП, память и т.д 8 23.03.2007 18:33


Часовой пояс GMT +4, время: 09:52.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.