Перейти к содержанию
    

Mega16 & UART

Добрый день. Тут такой прикольчик у меня наблюдается:

Работаю с Mega16, запускаю у неё UART на любой скорости, посылаю с неё всего один байт 0x0D, а в терминалке получаю два байта 0x0D и 0x0A. Причем это наблюдается токо когда отсылаю именно 0x0D и всегда после него принимается 0x0A. Если слать скопом толпу байтов где нет байтов равных 0x0D то все Ок, сколько послал столько и принял и пакет правильный. А если с 0x0D то получаю пакет длиннее на столько байтов сколько раз встретился 0x0D в пакете. Что может быть за мистика? :(

Мега работает с кварцем 16МГц и скорость UART никак не влияет на данный странный баг.

Инициализация выполнена так:

  UCSRA=0x02;
  UCSRB=0x18;
  UCSRC=0x8E;
  UBRRH=0x00;
  UBRRL=0x22;

 

отправка так:

void uart_send_char(unsigned char data){
  while ( !( UCSRA & (1<<5)) );
  UDR = data;
}

 

:help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

посылаю с неё всего один байт 0x0D, а в терминалке получаю два байта 0x0D и 0x0A.
Это одно из чудес виндового Гипертерминала. Ваш процессор работает правильно. В настройках (Propertities->Settings->ASCII-setup) есть галочка append line feeds to incoming line ends. Проверьте, стоит ли она. Помню, что иногда и она не помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это одно из чудес виндового Гипертерминала. Ваш процессор работает правильно.

 

Я использую терминал который в CodeVisionAVR :07: и просматриваю данные в hex

Ну на всякий случай набросаю тогда кодик своей терминалки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попрбуйте терминалку Zoc ( http://www.emtec.com/zoc/ ). С ней у меня никогда не было проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую терминал который в CodeVisionAVR :07: и просматриваю данные в hex

Ну на всякий случай набросаю тогда кодик своей терминалки...

 

В настройках кодывиженовской терминалки надо убрать 2 галочки:

Append LF On Reception

Append LF On Transmittion

 

В общем такое поведение терминалки своими корнями уходит глубоко в историю

0x0D - переход на след. строку

0x0A - перевод печатающей каретки в начало строки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В настройках кодывиженовской терминалки надо убрать 2 галочки:

Append LF On Reception

Append LF On Transmittion

 

В общем такое поведение терминалки своими корнями уходит глубоко в историю

0x0D - переход на след. строку

0x0A - перевод печатающей каретки в начало строки.

 

Оппаньки и правда, Спасибо, никогда бы не подумал. Вопрос снят, всем спасибо ещё раз!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем такое поведение терминалки своими корнями уходит глубоко в историю

0x0D - переход на след. строку

0x0A - перевод печатающей каретки в начало строки.

 

С точностью наоборот. :)

 

0D - "ВК" по рос. терминологии (возврат каретки) "\r" по Си. "Enter"

0A - "ПС" по рос. терминологии (перевод строки) "\n" по Си. "LF"

 

Кстати иногда дополняется и наоборот. Кроме того, виндовый терминал имеет глюки, которые неустранялись практически с момента написания. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0D - "ВК" по рос. терминологии (возврат каретки) "\r" по Си. "Enter"

0A - "ПС" по рос. терминологии (перевод строки) "\n" по Си. "LF"

 

Если быть совсем точным :biggrin: , то

 

0D - "ВК" по рос. терминологии (возврат каретки) "\r" по Си. "CR" (Carriage Return)

0A - "ПС" по рос. терминологии (перевод строки) "\n" по Си. "LF" (Line Feed)

 

:-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Точно. :) А то мозги отшибло и не смог вспомнить. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...