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

 
 
> 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
 
Start new topic
Ответов
lisstret
сообщение Mar 9 2011, 10:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 19th July 2025 - 01:58
Рейтинг@Mail.ru


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