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

 
 
> Проблема с софтовым UART на Mega8, Проблема с софтовым UART на Mega8
Ruslan Konovalov
сообщение Jul 28 2008, 22:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364



Уважаемые форумчане.

Софтовый уарт принимает не корректно.
Передача происходит без проблем, а принимает вместо:
Пример: Должен принять 000102030405
принимает FFFFFFFFFFFFF
В чем проблема, так и не понял(может настройки пррываний ?).
Компилятор IAR. Проверял на Proteus 7.2

Или быть может у кого нибудь есть рабочий софтовый уарт.
Скорость нужна макс. 115200.
Буду признателен любой помощи.

С Уважением,
Руслан.
Прикрепленные файлы
Прикрепленный файл  soft_uart.zip ( 2.35 килобайт ) Кол-во скачиваний: 42
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan Konovalov
сообщение Jul 29 2008, 18:14
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 25-07-07
Пользователь №: 29 364



Огромное спасибо всем кто отозвался.
Мне было бы достаточно работать на скорости 115200.
Большая скорость не нужна.
Мне нужно использовать именно 2 уарта.
Аппаратный уарт уже занят.
Может кто нибудь имел дело с софтовым уартом на скорости 57600-115200 ?
Не знаю что я делаю не так.
Пример, который я привел нормально не работает даже на скорости 9600.
Проверял в протеусе.
Спасибо за ответы.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 29 2008, 21:10
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Ruslan Konovalov @ Jul 29 2008, 17:14) *
Мне было бы достаточно работать на скорости 115200

Ладно, шут с ним с Питером, пусть сидит в своём Берлине(:-). Давайте не будем никого слушать и поступим следующим образом.

0) Отказываемся от данеггеровской программы.

1) Подключаете вход RX к INTх, которая срабатывает на 1-0 перепад.

2) В подпрограмме обработки прерывания от INTх пишете настройку таймера на переполнение через ПОЛТОРА периода вашей скорости 115200, т.е. таймер должен сработать по переполнению через 13 мкс, bitcounter=8, запрещаете прерывания от INTх и выходите. Больше ничего.

3) В подпрограмме обработки прерывания от переполнения таймера пишете занесение текущего принятого бита в srxdata, как-то так

srxdata=srxdata<<1;
if(srxpin&0x01) srxdata++;

скручиваете счётчик бит, если счётчик бит скручен, останавливаете таймер и взводите флаг srxdone.
if((bitcounter--)==0) {stoptimer(); srxdone=1}; else настраиваете таймер на переполнение через ОДИН период, т.е. 8.68 мкс и выходите.

4) В фоне опрашиваете флаг srxdone, если он взведен, читаете принятый байт, сбрасываете флаг srxdone и разрешаете прерывания от INTх. Вы снова готовы принимать байты.

Ну, вроде всё, должно помочь горю. Держите нас в курсе.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan Konovalov   Проблема с софтовым UART на Mega8   Jul 28 2008, 22:32
- - bgc   Скорость великовата для софтового... Проверьте на ...   Jul 28 2008, 22:35
|- - Ruslan Konovalov   Цитата(bgc @ Jul 29 2008, 01:35) Скорость...   Jul 28 2008, 23:27
|- - =GM=   Цитата(Ruslan Konovalov @ Jul 28 2008, 22...   Jul 29 2008, 12:32
||- - MrYuran   Цитата(=GM= @ Jul 29 2008, 16:32) для пол...   Jul 29 2008, 12:36
||- - =GM=   Цитата(MrYuran @ Jul 29 2008, 11:36) Если...   Jul 29 2008, 12:42
|- - defunct   Цитата(Ruslan Konovalov @ Jul 29 2008, 02...   Jul 29 2008, 13:06
|- - =GM=   Цитата(defunct @ Jul 29 2008, 12:06) 5 вы...   Jul 29 2008, 13:43
|- - defunct   Цитата(=GM= @ Jul 29 2008, 16:43) 5-то за...   Jul 29 2008, 14:59
|- - SasaVitebsk   Цитата(defunct @ Jul 29 2008, 17:59) Для ...   Jul 29 2008, 15:55
||- - defunct   Цитата(SasaVitebsk @ Jul 29 2008, 18:55) ...   Jul 29 2008, 16:10
||- - AHTOXA   Цитата(defunct @ Jul 29 2008, 22:10) Связ...   Jul 29 2008, 16:29
||- - defunct   Цитата(AHTOXA @ Jul 29 2008, 19:29) При т...   Jul 29 2008, 16:53
||- - AHTOXA   Цитата(defunct @ Jul 29 2008, 22:53) Теор...   Jul 29 2008, 18:18
||- - defunct   Цитата(AHTOXA @ Jul 29 2008, 21:18) Скоро...   Jul 29 2008, 19:03
||- - AHTOXA   Цитата(defunct @ Jul 30 2008, 01:03) Не м...   Jul 29 2008, 19:56
||- - defunct   Цитата(AHTOXA @ Jul 29 2008, 22:56) Там п...   Jul 29 2008, 20:36
||- - AHTOXA   Цитата(defunct @ Jul 30 2008, 02:36) Поче...   Jul 29 2008, 21:23
|- - =GM=   defunct ну ну, хватит ровно на чтение из порта одн...   Jul 29 2008, 16:20
- - _Pasha   Цитата(AHTOXA @ Jul 29 2008, 19:29) Потом...   Jul 30 2008, 10:57
- - AHTOXA   Цитата(_Pasha @ Jul 30 2008, 16:57) В общ...   Jul 30 2008, 11:27


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

 


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


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