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

 
 
> USART mega128
_Артём_
сообщение Nov 10 2011, 13:32
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Добрый день.
Проблема в следующем:
нужно определить момент завершения передачи пакета данных (RS485).
Передача байта:
Код
    if (UCSR0A&(1<<UDRE1)) {
        UCSR0A=(1<<TXC0);
        UDR0 = TxBuffer.ReadByte();
    }


Переключение линии:
Код
    if (TxBuffer.Size()==0) {
        if (UCSR0A&(1<<TXC0)) {
            if (OffTx485Count) {
                if (--OffTx485Count==0) {
                    DDRB|=(1<<5);
                    PORTB|=(1<<5);
                }
            }
        }
    }


В JTAG-е вижу странную ситуацию:
после записи в UDR0 (UDR0 = TxBuffer.ReadByte())
бит TXC сразу же устанавливается, чего быть не должно.
Как тогда определить конец пакета?
Go to the top of the page
 
+Quote Post



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

 


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


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