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

 
 
> 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



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

 


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


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