Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 12:09

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Вывод сообщений UART. Прошу совета
СообщениеДобавлено: 11 янв 2020, 22:13 
Здравствуйте!

Зарегистрирован: 11 янв 2020, 21:43
Сообщения: 2
Привет! Столкнулся с нюансом работы Атмега 16 в режиме UART. Сообщения выводятся , но со сдвигом относительно начала окна терминала (табуляция).
В коде на Си после инициализации (инициализирую порт для каждой строки отдельно) в кавычках с сообщением прописываю \n , на новую строку сообщение переходит но с отступом в половину экрана.
Необходимо сделать чтобы каждая строка шла от начала экрана терминала. Есть ли какие программные решения, или только установка кварца 7.3728 МГц?
пример код : UART_Send_Str("ABCDEF \n ");
_delay_ms(500); // delay ставил 100 то же самое
UART_Init();
UART_Send_Str("QWERTY \n "); // и т.д.
гипер терминал ХР : ABCDEF
QWERTY
Скрин окна терминала прикреплен к теме.
Среда IDE AVR Studio 4.18 Программатор STK500 совместимый.
Код компилируется без ошибок и предупреждений. Используется внешний кварц 8 МГц.
В протеусе 7.7 в терминале строки следуют "вместе" \n не работает - так и должно быть?


Вложения:
mesg.gif
mesg.gif [ 22.52 Кб | Просмотров: 331 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод сообщений UART. Прошу совета
СообщениеДобавлено: 11 янв 2020, 22:39 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 3066
line feed?
а \r добавить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод сообщений UART. Прошу совета
СообщениеДобавлено: 11 янв 2020, 23:38 
Здравствуйте!

Зарегистрирован: 11 янв 2020, 21:43
Сообщения: 2
Спасибо. Сейчас попробую.
В протеусе все заработало корректно. В реальности в гипертерминале все пишет в одной строке, дальше строки не идут. Проверю комбинацию \n \r .

goreprogrammist, спасибо тебе большое за быстрый ответ. :) Решил вопрос комбинацией /r/n .
Был еще нюанс с периодическими ошибками в строках, бывало, пустую строку выдает. Решил вопрос увеличением времени задержки каждой строки (200мс). Частоту порта замерил частотомером 3.2 Мгц , системклок 8Мгц -перекрывает, видимо буфер не успевает отрабатывать. Знатоки, подскажите на будущее в чем здесь дело.
P.S. для новичков, чтобы заголовок (модель устройства ) всегда показывался при старте мК, нужно всего лишь поставить задержку в 1 тыс мсек перед ним, и после.
Всем успехов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод сообщений UART. Прошу совета
СообщениеДобавлено: 12 янв 2020, 13:20 
Старожил

Зарегистрирован: 15 ноя 2015, 12:11
Сообщения: 200
В сообщениях устройства (и командах устройству) используйте только CR \r. Остальное - проблема мониторящего софта. Конкретно для HT - в Serial Settings выставляйте add line feeds (LF \n), чтобы не затирало предыдушие сообщения.

Стандарт окончаний строк в Windows CRLF, в Unix - CR, а LFCR - насколько я помню, использовался в старой Mac OS, до перехода на платформу Darwin. Превращение \n в \r\n при выводе функциями стандартной библиотеки под dos/windows - осуществляется костылём в этих самых функциях, в зависимости от реализации и от конкретно используемой функции.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 


Часовой пояс: UTC + 5 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB