Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Очистить консоль
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
r00blik
Здравствуйте! Прошу прощения за, вероятно, тривиальный вопрос, но я недавно заинтересовался микроконтроллерами и программированием, и у меня возник вопрос: а как очистить консольный экран при работе с msp?

#include<stdlib.h>
main ()

{
system("cls");
}

и

#include <conio.h>
main ()

{
clrscr();
}

не помогают.
demiurg_spb
Как вариант: CR-LF отправить n-раз, где n-число строк консоли (правда курсор останется внизу).
r00blik
Цитата(demiurg_spb @ Nov 8 2011, 09:13) *
Как вариант: CR-LF отправить n-раз, где n-число строк консоли (правда курсор останется внизу).

Этот вариант не подходит, т.к. необходимо цикличное обновление информации, выводимой в консоль.
demiurg_spb
Тогда позиционируйте курсор и покрывайте старое новым.
SSerge
Хороший вопрос.
А что это за консольный экран такой и откуда он взялся?

Чтобы под DOS или Win исполнилось system("cls"); предварительно какой-то, не к ночи будь помянут, добрый человек должен был написать интерпретатор команд command.com (или cmd.exe), а другой - эмулятор консольного терминала, а третий - драйвер видеокарты.
И всё это вместе работает, старательно изображая из себя древний алфавитно-цифровой терминал.

Лучше всего, конечно, почитать документацию, если она есть.
Можно попробовать поуправлять как ANSI-терминалом, давая команды FormFeed (один символ '\0x0c') или Erase Screen (последовательность "\e[2J").

Виндовский гипертерминал, кстати, вполне успешно изображает из себя VT100.
http://www.termsys.demon.co.uk/vtansi.htm
http://en.wikipedia.org/wiki/ANSI_escape_code
r00blik
SSerge, связь с контроллером через терминальный эмулятор Tera Term Pro.

Всем спасибо за ответы, появилось несколько идей, попробую реализовать сегодня вечером.
Shread
Если не ошибаюсь, посылал 0xOC, если не найдете или OC не подойдет, могу глянуть в одном из своих проектов))
r00blik
В-общем, что получилось:
1) при printf('\0x0c'); компилятор выдает предупреждение "passing arg 1 of 'printf' makes pointer from integer without a cast", в самой программе ничего не происходит. Может, я что-нибудь не так делаю..
2) при printf("\e[2J"); в программе происходит промотка на чистый экран, но курсор в левый верхний угол не возвращается.

Кстати, при "\e[1J" экран нормально очищается, но курсор опять же остается на прежнем месте(
В качестве решения решил использовать последовательно 2 команды: "\e[2J" и "\e[H".
demiurg_spb
Цитата(r00blik @ Nov 8 2011, 21:25) *
В-общем, что получилось:
1) при printf('\0x0c'); компилятор выдает предупреждение "passing arg 1 of 'printf' makes pointer from integer without a cast", в самой программе ничего не происходит. Может, я что-нибудь не так делаю..
Конечно не так. printf что получать должен? Строку (указатель на массив символов), а вы один символ ему суёте. О чём он честно вас и предупреждает.
Код
putchar(0x0c);
или
Код
printf("\x0c");
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.