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

 
 
> Atmega32 и USART
Кonstantin
сообщение Aug 11 2005, 17:13
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 11-08-05
Пользователь №: 7 558



Пожалуйста подскажите как настроить USART в mega32. В 128 настраивал, в 64 настраивал, в 32 не могу понять, то ли мега не работает, то ли я?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Кonstantin
сообщение Aug 11 2005, 19:47
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 11-08-05
Пользователь №: 7 558



Кварц 16.000.
Скорость 19200.
Длинна 9 бит.
На 64 работало так
(перевод с 64 на 32)

Код
ldi     Temp,51
    out     UBRRL,Temp
    ldi     Temp,0
    out     UBRRH,Temp
    ldi     Temp,$9c
    out     UCSRB,Temp
    ldi     Temp,$6
    out     UCSRC,Temp
    ldi     Temp,0
    out     UCSRA,Temp

Прошу прощения за
Цитата
ldi     Temp,$5
out     UCSRC,Temp

исправил, все равно не фурычит.
Цитата
ldi      Temp,2
out     UBRRH,Temp       ; так указано
ldi      Temp,$85            
out     UCSRC,Temp       ; в даташите

вставил из примера на всякий случай.
Go to the top of the page
 
+Quote Post
Karl
сообщение Aug 12 2005, 04:10
Сообщение #3


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

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



код для меги 32:

#define F_CPU 16000000 //частота кварца
#define UART_BAUD_RATE 115200 //скорость передачи
#define UART_BAUD_SELECT 8//(F_CPU/(UART_BAUD_RATE*16)-1)


/*
Инициализация UART. Разрешение прерывания по приему,
разрешение приемника, разрешение передатчика. 8 бит.
*/

void init_UART0()
{
outp(1<<RXCIE|1<<RXEN|1<<TXEN,UCSRB);
outp((UART_BAUD_SELECT&0xf00)>>8,UBRRH);
outp(UART_BAUD_SELECT&0xff,UBRRL);

}
Go to the top of the page
 
+Quote Post



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

 


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


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