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

 
 
> ATmega168, зачем дали другие имена регистрам USART'а?
haker_fox
сообщение Aug 1 2008, 03:20
Сообщение #1


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

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



Начал рабоать с этим МК и и озадачился, а зачем они (Atmel) ко всем именам регистров последовательного порта 0 добавили, да и к именам битов - тоже.
Т.е. теперь нужно не так писать
Код
UDR = 0xff;

,а так
Код
UDR0 = 0xff;

Второго посл. порта я в этом МК не увидел, следовательно, зачем нужно было нумеровать его? Есть ли разумное объяснение этому, или я что-то упустил в даташите?
Просто при портировании ПО на этот МК, дело не решилось правкой одной! строки в makefile, пришлось еще и исходник адаптировать(((


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Aug 1 2008, 04:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Так и УАРТ немного поменялся.
Код
#ifdef __ATmega8__
  UCSR0C = (1<<URSEL) | (3<<UCSZ00);
#else
  UCSR0C = (3<<UCSZ00);
#endif

Тупо накатал
Код
#ifdef __ATmega8__

#define USCR0A    USCRA
#define U2X0     U2X
#define UBRR0H    UBRRH
#define UBRR0L    UBRRL
#define UCSR0A    UCSRA
#define UCSR0B    UCSRB
#define UCSR0C    UCSRC
#define TXEN0    TXEN
#define RXEN0    RXEN
#define UCSZ00    UCSZ0
#define UDR0    UDR

#define RXC0      RXC
#define TXC0      TXC
#define UDRE0     UDRE
#define FE0       FE
#define DOR0      DOR
#define UPE0      PE
#define U2X0      U2X
#define MPCM0     MPCM

#define RXCIE0    RXCIE
#define RXB80     RXB8

#endif

и вроде даже работало на м88


--------------------
aka Vit
Go to the top of the page
 
+Quote Post



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

 


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


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