Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Особенности форматируемого ввода/вывода
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
SasaVitebsk
Закончил драйвер LCD дисплея (упрощённый, но явно достаточный). Столкнулся с непонятной (для меня) вещью. По финишу работы стандартной ф-ии puts() выводится код 0xa (/n). По терминалу VT100 и даже нашему 15ИЭ0013 smile.gif - это код 'LF' или наш вариант 'ПС' (LineFeed/Перевод строки). По моему понятию должен заканчиваться 0xd (CR/Enter/ВК-ВозвратКаретки).

Вопросы:
1) Должен ли я его дополнять CR?
2) Если должен, то что я должен выводить по CR?

Всё это несколько непонятно. Если мне не изменяет память, то терминал может дополнять символ CR символом LF, но чтобы наоборот я не сталкивался. Если же не дополнять, то не очень удобно пользоваться.
zltigo
Цитата(SasaVitebsk @ Nov 16 2006, 23:51) *
По моему понятию должен заканчиваться 0xd (CR/Enter/ВК-ВозвратКаретки).

Тем не менне LF это 'правильное' и документированное поведение puts();

Цитата
1) Должен ли я его дополнять CR?

Никто никому ничего не должен - нужно CR+LF - дополняйте.
Цитата
2) Если должен, то что я должен выводить по CR?

??? Не понял - его и выводите, если надо.
Цитата
Всё это несколько непонятно. Если мне не изменяет память, то терминал может дополнять символ CR символом LF, но чтобы наоборот я не сталкивался.

Хорошие терминалы могут дополнять как угодно. Мненее хорошие можно заставить сначала перекодировать LF в CR а протом дополнить. Редко какой не может дополнить CR LFом.
Посему вполне безопасно использовать с неизвестным терминалом одиночный CR.

Ну а если использовать максимально хороший :-) терминал - то это ZOC.
SasaVitebsk
Спасибо за информацию. Я не использую терминал, я его эмулирую на LCD. Чтобы форматируемый ввод/вывод работал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.