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

 
 
 
Reply to this topicStart new topic
> ATMEGA32 инициализация USART, проблема с регистрами UBRRH и UCSRC
lisstret
сообщение Mar 5 2011, 01:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



Помогите разобраться с инициализацией USART'а.

Вообщем проблема при записи или доступе к регистрам UBRRH и UCSRC. Для доступа к первому нужно сбрасывать бит URSEL и для доступа ко второму устанавливать. А получается что когда я использую строчку UCSRC=(1<<URSEL)|(3<<UCSZ0)|(2<<UPM0); у меня все равно идет запись в два регистра.

Код
void init_uart(void)
{    
   UBRRH = UBRRH_VALUE;
   UBRRL = UBRRL_VALUE;
   #if USE_2X
   UCSRA |= (1 << U2X);
   #else
   UCSRA &= ~(1 << U2X);
   #endif
   UCSRB=(1<<RXEN)|(1<<TXEN);
   UCSRC=(1<<URSEL)|(3<<UCSZ0)|(2<<UPM0);
}


UBRRH_VALUE и UBRRL_VALUE считал при помощи макросов в составе пакета. Использую компилятор avr-toolchain-3.0.0.240 и avrstudio4 соответственно.

Также пытался сделать тип такого, но результат остался прежним:

Код
void init_uart(void)
{    
   UBRRH = UBRRH_VALUE;
   UBRRL = UBRRL_VALUE;
   #if USE_2X
   UCSRA |= (1 << U2X);
   #else
   UCSRA &= ~(1 << U2X);
   #endif
   UCSRB=(1<<RXEN)|(1<<TXEN);
   UCSRC=(1<<URSEL);
   UCSRC=(3<<UCSZ0)|(2<<UPM0);
}


В прикрепленных файлах скриншоты при работе с симулятором и сам проект. Заранее спасибо.

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  USART_EXAMPLE.rar ( 11.04 килобайт ) Кол-во скачиваний: 11
 
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Mar 5 2011, 05:57
Сообщение #2


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

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Попробуйте команды местами поменять:
Код
void init_uart(void)
{    
UBRRH = UBRRH_VALUE;
UBRRL = UBRRL_VALUE;
UCSRC=(1<<URSEL)|(3<<UCSZ0)|(2<<UPM0);
#if USE_2X
UCSRA |= (1 << U2X);
#else
UCSRA &= ~(1 << U2X);
#endif
UCSRB=(1<<RXEN)|(1<<TXEN);
}
Go to the top of the page
 
+Quote Post
SysRq
сообщение Mar 5 2011, 08:07
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(lisstret @ Mar 5 2011, 04:40) *
Помогите разобраться с инициализацией USART'а.

Вообщем проблема при записи или доступе к регистрам UBRRH и UCSRC.
//...
Использую компилятор avr-toolchain-3.0.0.240 и avrstudio4 соответственно.

Пользуйтесь поиском по форуму. Это задокументированное ATMEL ошибочное поведение AVRStudio 4:
Цитата
The USART's UBRRH and UCSRC registers share the same I/O address. Writing to one of the registers will cause both registers to contain the new value, regardless of the value of URSEL.

Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Mar 5 2011, 14:30
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Как Вам уже советовали, так точно должно в UCSRC записаться:
Код
UCSRC=(1<<URSEL)|(3<<UCSZ0)|(2<<UPM0);
И студия действительно эту ситуацию неправильно отрабатывает.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
lisstret
сообщение Mar 9 2011, 10:22
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 10-06-10
Из: Владивосток
Пользователь №: 57 835



Цитата
Пользуйтесь поиском по форуму. Это задокументированное ATMEL ошибочное поведение AVRStudio 4:


Название документика не подскажете?

Цитата
И студия действительно эту ситуацию неправильно отрабатывает


Т.е. я так понял в симуляторе эт такой глюк, а в самом контроллере все нормально работает? Надо с JTAG'oм попробывать отладить. Просто когда в телнет посылал строку Hello World отображался только один символ черви, так что я думал все из за скорости. Походу мож скосячил в самой настройке телнета.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Mar 9 2011, 10:30
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(lisstret @ Mar 9 2011, 13:22) *
Название документика не подскажете?
AVR Studio -> Menu -> Help -> AVR Studio User Guide -> Simulator -> Simulator known issues
Go to the top of the page
 
+Quote Post

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

 


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


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