Перейти к содержанию

Дисплей Lcd1602A Реализация Функции Backspace


Рекомендуемые сообщения

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

при нажатии на *

1. Узнать текущий адрес курсора

2 Сделать минус на 1 ячейку.

3. Очистить только эту ячейку (остальные не трогать)

4. Поставить курсор на 1 поз назад.

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

Не подскажете?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В даташите же есть, команда установить курсор и адрес заедается, если я не ошибаюсь, номер строки и номер знакоместа

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

В даташите же есть, команда установить курсор и адрес заедается, если я не ошибаюсь, номер строки и номер знакоместа

Да есть такое. Но представь ситуация, я вывел строку (разом) фиг знает из скольки символов. курсор остановился за последним символом. И теперь, нажимая на кнопку, мне надо стереть последний символ. Вот мне и надо знать адрес, где сейчас находится курсор.

Ссылка на комментарий
Поделиться на другие сайты

А чего его знать, у тебя всего то 2 строки по 16 символов. Заводиш счётчик в нем фиксируешь был ли переход на другую строку или нет, и следом фиксируешь сколько символов ввёл, плюсуеш, сколько стёр- минусуеш

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

Там функция не сложная

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Хотя зачем все эти примудоости, насколько я помню в даташите есть команды передвинуть курсор на одну позицию вперёд/назад можно просто а можно с затиранием символа, но этот символ будет затираться в памяти самого дисплея, а в программе в мк он затираться не будет, но там можно опрашивать дисплей и читать его состояние, тоже командами специальными. А лучше возьмите готовую библиотеку и не мучайтесь

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

А чего его знать, у тебя всего то 2 строки по 16 символов. Заводиш счётчик в нем фиксируешь был ли переход на другую строку или нет, и следом фиксируешь сколько символов ввёл, плюсуеш, сколько стёр- минусуеш

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

Там функция не сложная

Я бы не писал сюда)). Просто подумайте, неужели у такой фигни нет такой простой функции?. Я то думал что она есть или по крайней мере она не требует заводить ещё счётчик специально. Вот и спрашиваю). Ну, если нету, придётся заводить счётчик(

Ссылка на комментарий
Поделиться на другие сайты

Есть, читайте мой пост выше. Просто почитайте хорошо даташит. У этого дисплея очень много возможностей. Даже прокрутка есть как у бегущей строки. Найдите статьи на русском про этот дисплей. На этом сайте полюбому есть статьи.

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Какой даташит ? Зачем он ?

Как можно не знать текущее положение символа, если Вы его только что по определённым координатам вывели ? Я, например, даже не могу представить, в чём проблема...

Ссылка на комментарий
Поделиться на другие сайты

...в чём проблема...

Автору нечем занять STM32. Вот он и пытается копаться в командах и адресах дисплея, вместо того, чтобы изменить строку в RAM МК и вывести ее полностью заново (обновить дисплей).

Ссылка на комментарий
Поделиться на другие сайты

Какой даташит ? Зачем он ?

Как можно не знать текущее положение символа, если Вы его только что по определённым координатам вывели ? Я, например, даже не могу представить, в чём проблема...

Допустим я вывожу строку "Темп. х", где х - может быть и 1 и 2 и 3 разрядное. Число получается при обработке данных с датчика. Датчик я привёл чисто для примера.

Что бы узнать позицию курсора мне надо сосчитать кол-во элементов в строке "Темп." и + высчитать разрядность числа. Неужели ради такого простого надо производить такие расчёты? Попроще нет ничего?

Ссылка на комментарий
Поделиться на другие сайты

О каких расчётах речь идёт ? И какая разница что вы выводите, строку, число, ... Это всё - символы, которые вы выводите один за другим по определённым координатам.Как можно не знать куда вы вывели последний символ ?

Ссылка на комментарий
Поделиться на другие сайты

Если кому надо, всё проще

1) Сдвигаем курсор влево, команда = 10h.

2) Печатаем пробел (очищаем знакоместо), код символа = 20h.

3) Снова сдвигаем курсор влево, команда = 10h.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...