Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не выводится на терминал буква "я"
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
alux
Использую инструкцию типа :
Код
printf_P("\n\r Измеренная температура возле датчика:   %f", D2);

В качестве терминала - гипертерминал Windows.
Выводится:
Цитата
Измеренна температура возле датчика: 0.000000

Испробовал все возможные настройки шрифтов терминала. Подозреваю, что это связано с тем, что ASCII код этой буквы =255. Пока решил проблему заменой на большую букву "Я". Как все-таки заставить вывести маленькую букву 'я' ?
rezident
Самое правильное решение - НЕ использовать виндусовый гипертерминал. Используйте другую программу терминала.
Сергей Борщ
Цитата(alux @ Aug 28 2007, 12:50) *
ASCII код этой буквы =255. Пока решил проблему заменой на большую букву "Я". Как все-таки заставить вывести маленькую букву 'я' ?
Что-то похожее встречалось в очень старых версиях. Была проблема самого IAR. Решение хоть и кривое, но работало: printf_P("\n\r Измеренна\xFF температура возле датчика: %f", D2); Проверил сейчас в IAR ARM 4.30A - в строку заносится и 'я' и '\xFF'. Посморите листинг - если ассемблированная строка содержит код 'я', то скорее всего проблема в printf_P, точнее в вызываемой из нее __formatted_write() или putchar() или __write(). Как раз тот случай, когда не грех прогнать кусочек програмы в симуляторе.


Цитата(rezident @ Aug 28 2007, 14:24) *
Самое правильное решение - НЕ использовать виндусовый гипертерминал.
Гипертерминал конечно имеет недостатки, главный из которых - забирает на себя все ресурсы и тормозит комп при появлении в линии сигнала break. И таки да, НЕ ОТОБРАЖАЕТ на экране символ с кодом 0xFF - заменяет пробелом. Хотя в лог исправно пишет. Но тем не менее он имеет одно преимущество - он есть на любом компе.
rezident
Цитата(Сергей Борщ @ Aug 28 2007, 18:13) *
Но тем не менее он имеет одно преимущество - он есть на любом компе.

Знаешь, Сергей, это преимущество весьма сомнительное. Сейчас и Винда-то не на любом компе есть smile.gif
Николай Z
Цитата(alux @ Aug 28 2007, 13:50) *
Использую инструкцию типа :
Код
printf_P("\n\r Измеренная температура возле датчика:   %f", D2);

В качестве терминала - гипертерминал Windows.
Выводится:

Испробовал все возможные настройки шрифтов терминала. Подозреваю, что это связано с тем, что ASCII код этой буквы =255. Пока решил проблему заменой на большую букву "Я". Как все-таки заставить вывести маленькую букву 'я' ?


Загрузи терминал Br@y и задача решена...
Напрмер отсюда: http://www.sosej.cz/Utility-A-Ovladace/Uti...y-Terminal.html

Все проблемы именно он кривости Гипертерминала, который трактует букву я-малое как спецсимвол
rezident
Цитата(Николай Z @ Aug 28 2007, 20:21) *
Загрузи терминал Br@y и задача решена...

Я именно его в своем сообщении выше и приаттачил smile.gif
IgorKossak
Цитата(rezident @ Aug 28 2007, 18:19) *
Я именно его в своем сообщении выше и приаттачил smile.gif

Терминал хороший, но сайт разработчика мёртв уже более чем полгода.
vmp
Цитата(IgorKossak @ Aug 29 2007, 10:27) *
Терминал хороший.

Хороший-то он хороший, но очень медленный. При работе на 115200 теряет данные на довольно неслабой машине (P4 2.8). Призодится для протоколирования больших объемов информации запускать TeraTerm.
zltigo
Цитата(IgorKossak @ Aug 29 2007, 09:27) *
Терминал хороший, но сайт разработчика мёртв уже более чем полгода.

А внешний вид с кучей кнопочек на морде, что называется "на любителя". Ну а уж как эти кнопочки, боксики и списочки сбиваюся в кучу и налезают друг на друга при смене системных шрифтов на высоких разрешениях экрана sad.gif не может понравиться никому.
Николай Z
Цитата(vmp @ Aug 29 2007, 11:15) *
Хороший-то он хороший, но очень медленный. При работе на 115200 теряет данные на довольно неслабой машине (P4 2.8). Призодится для протоколирования больших объемов информации запускать TeraTerm.


ну не знаю у меня и на 115200 работает и буковки не теряет... ну другой поищи - любой кроме гипертерма... Я его может и не сайта разраба скачал - всего месяц назад - но откуда не помню уже... как раз из-за того что приработе с MsbStr-9 у меня буковки пропадали... где-то ннеще лежит крорме моей ссылки... которую я дал

Кнопочек да - много - но зато настройкм при этом очевидные - и башку не ломать... и окна ввода-вывода - отдельные... Вопрос в том - Вам шашечки или Вам ехать? Если шашечки - так это как раз Гипертерминал... а если ехать этот в самый раз с полным управлением...
zltigo
Цитата(Николай Z @ Aug 30 2007, 00:53) *
Вопрос в том - Вам шашечки или Вам ехать? Если шашечки - так это как раз Гипертерминал...

Если реально ехать, то ZOC. Практически безальтернативно sad.gif.
А откуда у Hiperterminal шашечки? Нет их там smile.gif, ни шаечек нет, ни езды.
Николай Z
Цитата(zltigo @ Aug 30 2007, 10:46) *
....
А откуда у Hiperterminal шашечки? Нет их там smile.gif, ни шаечек нет, ни езды.


Ну да и на ZOC отлично ездится.... Мне просто оказалось быстрее Br@y скачать...

А шашечку Вы просто не заметили у гипертерминала...
У Гипертерминала главная шашечка в разделе Help->About HyperTerminal...
Там что-то про Мелкомягкий копирайт и версию аж 5.1 или около того...
Возможно она единственная - но зато солидная и большая шашечка и по замыслу разработчиков видимо вызывает огромное уважение... beer.gif
pvp
Цитата(alux @ Aug 28 2007, 13:50) *
Как все-таки заставить вывести маленькую букву 'я' ?


Предлагаю Вам установить в HyperTerminal'e шрифт 'Terminal' - это тот, что установлен по умолчанию, а в своей embedded программе реализовать преобразование из кодировки win1251 в dos866 (например, в данном файле Нажмите для просмотра прикрепленного файла содержится соответсвующая map-таблица).

P.S. Не забудьте сменить расширение файла на *.h
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.