roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 23:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Помогите с USART
СообщениеДобавлено: 29 дек 2011, 23:48 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
Процесор работает на заводской частоте.
пример запускаю в proteus а код пишу CVAVR.
Пытаясь разобрать с принципом работы Usart читая попутно краткий курс-самоучитель, и учитывая, что я в этом деле новичок, возник следующий вопрос:
Виртуальный терминал выдает абру кадабру из непонятных символов вместо желаемого "Hello world", что я сделал не так помогите разобраться?!
код следующий:

UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86; // USART
UBRRH=0x00;
UBRRL=0x06;

putsf ("Hello world");


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 30 дек 2011, 11:47 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Скорость УАРТ-а неправильно настроил. Выясни, что такое "заводская" частота и начни с того, чтобы помигать светодиодом ровно 1 раз в секунду. Потом все получится.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 30 дек 2011, 11:51 
Не в сети

Зарегистрирован: 15 май 2011, 19:19
Сообщения: 239
Откуда: Ростов-на-Дону
Skype: levanchik322
прог. языки: WinAVR C, C#, HTML+СSS.
ФИО: Лёва
Не, всё намного легче.
Проверь вот что.
1) ОБЯЗАТЕЛЬНО нужно чтобы rx соед с tx, а tx c rx.
2) Проверь в терминале настройки, чтобы они совпадали с тему что у тебя прописанны в регистрах УАРТ.
3) Проверь свою частоту работы МК. Лучше поставить внешний кварц на 8 или 16 МГЦ и поставить работы на 9600 или 19200 бод, там ошибка всего то лишь 0.2%

Добавлено спустя 1 минуту 22 секунды:
А вообще если дает абру кадарбу это на 89% из за неправильной работы скорости уарт => Начни с проверки кварца


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 30 дек 2011, 20:29 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
на заводской частоте 1МГЦ.
попробывал в CVAVR поменять частоту на 4 и 8 МГЦ таже петрушка. что то делаю не так но не пойму что

Добавлено спустя 16 секунд:
на заводской частоте 1МГЦ.
попробывал в CVAVR поменять частоту на 4 и 8 МГЦ таже петрушка. что то делаю не так но не пойму что


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 30 дек 2011, 20:43 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Лень за тебя смотреть даташит - предположим, что скорость на МК ты настроил верно - поиграйся тогда со скоростью в терминале. Попробуй все скорости по очереди.

Но вообще обычно если мусор есть - значит передача идет, просто скорости не совпадают.

И я все-таки рекомендую помигать светодиодом - чтоб уж точно.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 31 дек 2011, 22:35 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Не вижу самого главного - скорость со стороны компа какая?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 02 янв 2012, 19:11 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
программа моделируется в Proteus в виртуальном терминале скорость совпадает, пробывал в терминале менять скорость результат тот же.
dccharacter
помигал диодом используя функцию delay
PORTA.1=1;
delay_ms (200);
PORTA.1=0;
delay_ms(800);
сравнивая с временем на компьютере заметно небольшое отклонение (жду совета)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 02 янв 2012, 20:29 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
сделай задержку в обоих местах по 1000 и посмотри визуально - секунда между переключением светика или нет

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 02 янв 2012, 20:45 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
dccaracter
попробывал проверил по моил ощущением пауза близка к 1,5 сек.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 03 янв 2012, 03:42 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
trinadcatii писал(а):
dccaracter
попробывал проверил по моил ощущением пауза близка к 1,5 сек.

Ну скорость в терминале увеличь в 1,5 раза. Была 9600, сделай 14400 (или что там у тебя - мы ж не телепаты). Если пойдет передача, сделай соответствующие выводы (кварц не той частоты, что обознанчена; не запускается кварц и фигачит от внутренней частоты, неверно настрона частота на МК и т.д. и т.п.)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 03 янв 2012, 11:47 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
dccaracter благодарю за отзывчивость.
Я выше писал, что пробывал менять скорость на более высокую это ничего не поменяло.
В CodeVision выбрана частота 1 МГц, в Proteus в правке свойств объекта в пункте CKSEL Fuses так же частота 1 Мгц.
А чтобы сделать правильные выводы не хватает опыта


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 04 янв 2012, 00:26 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
trinadcatii писал(а):
Я выше писал, что пробывал менять скорость на более высокую это ничего не поменяло.

Я чего-то не вижу, где ты про скорость писал, токо про частоту вижу. Вообще 9600 на 1 МГц - плохой пример, там 7% ошибки. Попробуй поставить UBRR=12 и скорость 2400 в терминале. Или 8 МГц, 9600 и UBRR=51. Ну и вообще, это ж протеус, там же вроде осциллограф бесплатный должен быть - ткнись в Tx и посмотри длительность бита в микросекундах. Чтобы не смотреть, чего ж там "на глаз" мигает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 04 янв 2012, 01:17 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
Прошу извинения действительно не писал-новый год виноват).
у меня 2 пункта UBRRH И UBRRL куда именно поставить 12?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 04 янв 2012, 01:20 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
UBRRH = 0;
UBRRL = 12;

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с USART
СообщениеДобавлено: 04 янв 2012, 01:50 
Не в сети

Зарегистрирован: 29 дек 2011, 23:26
Сообщения: 11
[/quote] :cry: Попробывал все тоже
в терминале ставлю
Baud Rate 2400
Data Bits 8
Parity NONE
Stop Bits 1
PCB Package Not specified


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 42


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO