Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Дисплей LCD1602A Реализация функции Backspace


Автор: supercelt 14.8.2016, 23:11
Привет. Прикрутил матричную клаву к stm32, и повесил дисплей. Вывожу на экран то что набираю на клаве. Вопрос, как организовать, когда нажимаешь на звёздочку, что бы напечатанный символ стирался ну и соответственно курсор возвращался на 1 место назад. Мои мысли такие:

при нажатии на *
1. Узнать текущий адрес курсора
2 Сделать минус на 1 ячейку.
3. Очистить только эту ячейку (остальные не трогать)
4. Поставить курсор на 1 поз назад.

Я не знаю только как делать пункты 1 и 3.
Не подскажете? 

Автор: Romikgy 15.8.2016, 08:53
Имхо проще постоянно следить где курсор... и когда надо стирать знак левее курсора и смещать курсор...

Автор: baldman88 15.8.2016, 12:26
Как уже написал Romikgy, гораздо удобнее хранить положение курсора в переменной. Очищать можно просто записывая в нужную позицию символ пробела.

Автор: supercelt 17.8.2016, 20:47
Если кому пригодится
1) Сдвигаем курсор влево, команда = 10h.
2) Печатаем пробел (очищаем знакоместо), код символа = 20h.
3) Снова сдвигаем курсор влево, команда = 10h.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)