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

 
 
> При включении питания отсылает по USART мусор...
MSprut
сообщение Aug 21 2007, 08:49
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476



Имеется два устройства на мега32 и мега88, связанных по USART. Устройство на мега88 управляет общим питанием и имеет резервное питание от батареи для работы в спящем режиме. При влючении основного питания мега88 сразу передает 0х00 и этим вводит в ступор второе устройство. Никак не могу эту фигню убрать. Может кто сталкивался с таким?
Код
//mega88
void Init_USART(unsigned int baudrate)
{
    UBRR0H = (unsigned char) (baudrate >> 8);
    UBRR0L = (unsigned char) baudrate;
    UCSR0B = (1 << RXCIE0) | (1 << RXEN0) | (1 << TXEN0);
    RxTail = 0;
    RxHead = 0;
    TxTail = 0;
    TxHead = 0;
}

Код
//mega32
void init_USART(unsigned int baudrate)
{
    UBRRH = (unsigned char) (baudrate >> 8);
    UBRRL = (unsigned char) baudrate;
    UCSRB = (1 << RXCIE) | (1 << RXEN) | (1 << TXEN);
    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
    RxTail = 0;
    RxHead = 0;
    TxTail = 0;
    TxHead = 0;
}

Так все работает хорошо и устойчиво, но вот эта бага всю малину мне х...т
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Aug 21 2007, 09:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Ну вот. Теперь понятно.

В общем то я поддержу prottoss.

1) Надо обрабатывать ошибки.
2) Либо надо ввести процедуру синхронизации, при которой слэйв дожидается какой-нибудь последовательности принятой без ошибок.

Знаешь как модем работает? Он принимает всё, но анализировать команду начинает начиная с "at". То есть команда
hgklk;lk;lkl;khjati3

будет отработана как ati3
Go to the top of the page
 
+Quote Post
MSprut
сообщение Aug 21 2007, 09:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 225
Регистрация: 25-04-06
Из: Украина, Луганск
Пользователь №: 16 476



Цитата(SasaVitebsk @ Aug 21 2007, 12:21) *
Ну вот. Теперь понятно.

В общем то я поддержу prottoss.

1) Надо обрабатывать ошибки.
2) Либо надо ввести процедуру синхронизации, при которой слэйв дожидается какой-нибудь последовательности принятой без ошибок.

Знаешь как модем работает? Он принимает всё, но анализировать команду начинает начиная с "at". То есть команда
hgklk;lk;lkl;khjati3

будет отработана как ati3

Хорошо, спасибо. Буду пробовать.
Go to the top of the page
 
+Quote Post



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

 


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


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