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

 
 
 
Reply to this topicStart new topic
> компилятор не знает регистры UCR и UBRR
Azat
сообщение May 28 2008, 15:41
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 18-04-08
Пользователь №: 36 883



почему не компилятся строчки
UBRR = 0x58; // активизируем приемник, передатчик и прерывание
UCR = 0x33; // скорость передачи 9600 бод

если ставлю другой тип микросхемы например at90s8535, то компилится
Go to the top of the page
 
+Quote Post
alkaes
сообщение May 28 2008, 15:58
Сообщение #2





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



Цитата(Azat @ May 28 2008, 18:41) *
почему не компилятся строчки
UBRR = 0x58; // активизируем приемник, передатчик и прерывание
UCR = 0x33; // скорость передачи 9600 бод

если ставлю другой тип микросхемы например at90s8535, то компилится


Может потому что ты взял микроконтроллер с двумя UART lol.gif поэтому там они могут называться UBRR0 UCR0 и UBRR1 UCR1
Go to the top of the page
 
+Quote Post
uriy
сообщение May 28 2008, 15:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Опять приходится телепатию включать. Что за компилятор? Какой изначально контроллер? Может вы хидер не тот цепляете? В конце концов можно и самому регистры эти продефайнить!
Go to the top of the page
 
+Quote Post
Azat
сообщение May 28 2008, 16:09
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 18-04-08
Пользователь №: 36 883



Цитата(uriy @ May 28 2008, 19:59) *
Опять приходится телепатию включать. Что за компилятор? Какой изначально контроллер? Может вы хидер не тот цепляете? В конце концов можно и самому регистры эти продефайнить!


Компилятор WinAvr. В мэкфайле ставлю тип мк atmega16, на плате тоже atmega16
Go to the top of the page
 
+Quote Post
kurtis
сообщение May 28 2008, 16:48
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



пример инициализации УАПП из даташита

Код
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}


дефайны всех регистров находятся тут
(директория с ВинАВР)..\avr\include\avr\iom16.h
при необходимости нужно будет подключить к проекту этот файл
Go to the top of the page
 
+Quote Post
Azat
сообщение May 28 2008, 20:07
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 18-04-08
Пользователь №: 36 883



нашел, там есть UBRRL И UBRRH. какой использовать?
Go to the top of the page
 
+Quote Post
sergeus
сообщение May 28 2008, 21:18
Сообщение #7


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

Группа: Участник
Сообщений: 157
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 174



Цитата(Azat @ May 29 2008, 00:07) *
нашел, там есть UBRRL И UBRRH. какой использовать?

Использовать оба, это регистры для выбора скорости работы UART, стр.142 даташита, там всё написано, с примерами.
Go to the top of the page
 
+Quote Post
AlexKLm
сообщение May 30 2008, 22:02
Сообщение #8


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

Группа: Свой
Сообщений: 160
Регистрация: 17-03-08
Из: Мурманская
Пользователь №: 35 989



Вот командная строка для компиляции для atmega8:

F:\WinAVR\bin\avr-g++.exe -c -fmessage-length=260 -I "F:\WinAVR\avr\include" -B "F:\winavr\avr\bin" -mmcu=atmega8 -minit-stack=0x45F -msize -D __AVR_ATmega8__ -D INCL_MSG -o "C:\BC2\MyProj\ATM8WELD\Utils.obj"


1. Для Вашего случая нужна опция -mmcu=atmega16
2. Ещё: -D __AVR_ATmega16__ надо.
3. -I "F:\WinAVR\avr\include" - надо указать где инклюды лежат.


--------------------
Демократия - это когда считается, что два дурака лучше одного умного
Суверенная демократия - это когда считается, что один дурак лучше двух дураков
Go to the top of the page
 
+Quote Post

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

 


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


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