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

 
 
 
Reply to this topicStart new topic
> ATmega16 + usart, без JTAG-a не работает
COMA
сообщение Jun 9 2010, 05:26
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Добрый день!

Настроил USART на прием и отправку данных по USRAT.
Параметры 9600 8 бит данных 2 стоп бита.

Начинает работает, если только остановить программу jtag-ом и заново запустить на выполнение.
Т.е. запускаем - не работает. Жму паузу, запускаю. Начинает работать прекрасно.

Чудеса. smile.gif

Понимаю что ошибка в программе не могу разобраться. Давно не работал с мегами smile.gif

инициализация USART
Код
void start_UART (UINT8 baud_rate_code)
{
    UINT32 baud_rate;

    switch (baud_rate_code) {
        case 1: baud_rate = 9600; break;
        case 2: baud_rate = 19200; break;
        case 3: baud_rate = 38400; break;
        case 4: baud_rate = 57600; break;
        case 5: baud_rate = 76800; break;
        case 6: baud_rate = 115200; break;
        default:;
    }

    UBRRH=HIGHBYTE(((SYS_OSC/16)/baud_rate)-1);
    UBRRL=LOWBYTE(((SYS_OSC/16)/baud_rate)-1);

    // Старт бит + 8 бит + 2 стоп бита
    UCSRC=(1 << USBS)|(1 << UCSZ1)|(1 << UCSZ0);
    UCSRB=(1 << RXEN)|(1 << TXEN);

    UCSRB_RXEN = 1;
    UCSRB_RXCIE = 1;
}
Go to the top of the page
 
+Quote Post
alvy
сообщение Jun 9 2010, 05:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 8-05-09
Из: Томск
Пользователь №: 48 809



Вроде криминального ничего нет, кроме лишнего взведения RXEN (UCSRB_RXEN = 1) - он уже взведен строчкой выше.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jun 9 2010, 05:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(COMA @ Jun 9 2010, 09:26) *
UCSRC=(1 << USBS)|(1 << UCSZ1)|(1 << UCSZ0);

А, где URSEL ?
Go to the top of the page
 
+Quote Post
COMA
сообщение Jun 9 2010, 14:26
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 851
Регистрация: 28-08-04
Пользователь №: 559



Добавил URSEL все работает.

Вот что значит не читать документацию.
Всем спасибо!
Go to the top of the page
 
+Quote Post

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

 


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


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