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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:06
Рейтинг@Mail.ru


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