Atmega128 USART

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Atmega128 USART

Сообщение Sarog » 18 июн 2010, 10:35

Добрый день
Проблема с приемом данных в Atmega128

Что бы я не передавал в ком порт, и не считывал, в UDR всегда записано значение 0xff
вот инициализация
Код: Выделить всё
void uart1_init(void)
{
    UBRR1L=1;                 // 250000 бит/с при такт частоте 8 МГц без удвоения
    UBRR1H=0;
    UCSR1A=0x80;                //   RXCn   TXCn  UDREn    FEn   DORn   UPEn   U2Xn  MPCMn
                               // сбросить бит окончания приема
    UCSR1B=0xd8;                // RXCIEn TXCIEn UDRIEn  RXENn  TXENn UCSZn2  RXB8n  TXB8n
                               // разрешить прервывание по окончанию приёма, прервывание окончанию передачи,
                               // приём, передачу
    UCSR1C=0x0e;                //     -  UMSELn  UPMn1  UPMn0  USBSn UCSZn1 UCSZn0 UCPOLn
                               // нет чётности, 2 стоп бита, 8 битов данных
}

Код: Выделить всё
ISR(USART1_RX_vect)
{
     unsigned char c,s;
     s=UCSR1A;
     c=UDR1;
}

даже если сделать так, что бы UDR точно сбрасывался, все равно значение 0xff
Код: Выделить всё
ISR(USART1_RX_vect)
{
     unsigned char c,s;
     UDR1;
     s=UCSR1A;
     c=UDR1;
}

в чем тут дело подскажите плиз
Sarog
 
Сообщения: 2
Зарегистрирован: 18 июн 2010, 10:31

Re: Atmega128 USART

Сообщение elesy » 18 июн 2010, 10:44

А зачем при приеме читаешь UCSR1A?
Просто читай данные
elesy
 
Сообщения: 92
Зарегистрирован: 24 май 2010, 15:31
Откуда: Екатеринбург
ФИО: Зайцев Иван Алексеевич

Re: Atmega128 USART

Сообщение avr123.nm.ru » 18 июн 2010, 10:50

Можно соединить резистором 1 кОм Tx и Rx и передавать и "слушать" прием. Настроить UART удобно мастером CVAVR.

И скорость у вас странная какая-то. Начните с классики - 9600.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: Atmega128 USART

Сообщение galex1981 » 18 июн 2010, 11:01

На 250000 бит/с может и не работать Уарт - зависит от выбранного кварца
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Atmega128 USART

Сообщение blindman » 18 июн 2010, 11:15

Проверить, что данные приходят действительно на скорости 250000. В прерывании по приему проверять флаги ошибок
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Atmega128 USART

Сообщение Sarog » 18 июн 2010, 12:57

всем спасибо за помощь
все норм,
я тупанул, кварц был на 16 мгц(
Sarog
 
Сообщения: 2
Зарегистрирован: 18 июн 2010, 10:31


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 19