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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> USART на mega32, пердает нормально, а принимать не хочет
haker_fox
сообщение Aug 5 2008, 09:47
Сообщение #16


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Freeze Anti @ Aug 5 2008, 18:41) *
спасибо за подсказку про URSEL. сейчас попробую.

и еще спасибо за подсказку про настройки компьютера. я почему-то упустил из виду, что раньше использовал эту программу под Win98, а теперь - под WinXP... действительно, проверил сигналы на входе MAX232. уходит нормальный сигнал, а вот приходит один всплеск очень короткий... я почему-то думаю, что именно здесь собака и порылась... программа, которая была в одном из аттачей не помогает... сейчас посмотрю, что выложил hacker_fox...

Замкните ножки MAX232, которые на МК уходят. В терминалке при посылке символа Вы должны получить эхо и это обязательно!

Цитата(Freeze Anti @ Aug 5 2008, 18:41) *
сейчас посмотрю, что выложил hacker_fox...

Да еще, не пугайтесь, там идет программирование с приминением класса. Но это делу не помешает. Самое главное посмотреть код. + есть там дополнительные интересный фичи: вывод числа, получение строки...
Не знаю, советовали ли (всю ветку внимательно не читал), но проверьте ну выскокая ли у Вас ошибка для заданной скорости UART и системной частоте МК.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Aug 5 2008, 11:23
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(Freeze Anti @ Aug 5 2008, 11:16) *
Собственно, сабж.

Инициализировал USART. сигнал с контроллера передается номально. По компорту ловлю на компьютере. А вот если с компьютера передавать - нет реакции. Вот кусок кода моей программы

[code]
UBRRH = 0;
UBRRL = 103; // Скорость обмена USART 9600 бод
UCSRB = 0x18; /* Устанавливаем разряды TXEN и RXEN для
активизации USART в режиме ввода/вывода через
выводы 0 и 1 порта D */
UCSRC = 0x03; // Разряды UCSZx установлены для передачи 8 бит данных


ИМХО в меге 32 регистры UCSRC и UBRRH имеют один и тот же адрес в области I/O, для доступа к UCSRC надо установить в 1 старший бит URSEL. В вашем случае:
UCSRC = (0x03|(1<<URSEL));
Go to the top of the page
 
+Quote Post
Freeze Anti
сообщение Aug 5 2008, 11:38
Сообщение #18


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Всем огромное спасибо за ответы. Рядом с max232 был непропай на плате. Установкой перемычки проблему удалось устранить.


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post

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

 


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


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