Блок с изменением строк и столбцов по входам
Если только проблема в очистке, то
Код: Выделить всё
if (En) {
lcd.clear(); // Очистка дисплея
--Stroka;
--Stolbec;
lcd.setCursor(Stolbec, Stroka); // Установка курсора в начало первой строки
lcd.print(D); // Набор текста на первой строке
}
А для чего, тогда по Вашему вход Еn, что-бы блок бомбил в каждом цикле при статичных данных? Ставьте детектор изменения данных на вход Еn- это и есть его основное назначение. Очистка дисплея необходима если предыдущие данные длиннее текущих, её менее ресурсозатратно сделать всякий раз при смене данных, чем анализировать эти данные.
Например я хочу вводить номер телефона в епром используя дисплей и енкодер. Получается на каждый символ мне придется ставить свой дисплей с фиксированной строкой и столбцом. А могу использовать счетчик для перемещения по строке, значение с счетчика прицепить к входу блока дисплея "stolbec" и крутя энкодер двигаться по номеру для редактирования нужного числаav писал(а): ↑28.07.2020{, 23:23}notfun, а почему вы не используете хоть на каждый символ строк по блоку ? Понимаю что блоков будет куча и не красиво, но новый добавленный блок не займет слишком много памяти (допустим выводите слово из пяти символов одним блоком или пять символов пятью блоками разница будет небольшой). Единственная проблема в управлении этими блоками когда на какой блок нужно подать сигнал на вывод на дисплей или отключить вывод на дисплей.
Я пробовал добавить как Вы написали, наблюдал мерцание дисплея, для себя сделал вывод, что очистка в каждом циклеLabu559 писал(а): ↑28.07.2020{, 23:28}А для чего, тогда по Вашему вход Еn, что-бы блок бомбил в каждом цикле при статичных данных? Ставьте детектор изменения данных на вход Еn- это и есть его основное назначение. Очистка дисплея необходима если предыдущие данные длиннее текущих, её менее ресурсозатратно сделать всякий раз при смене данных, чем анализировать эти данные.
-----------------------notfun писал(а): ↑28.07.2020{, 21:54}Для изменения адреса, строки и столбца нужно входить в сам блок и проводить редактирование в нем. Очень хочется делать это с помощью переменных и вносить изменение в ходе проекта с помощью входов на это блок, то есть в проекте 1 блок для дисплея и в зависимости от требований и блока выбора sel я мог бы перемещаться по строкам и столбцам. Такой блок я написал, но есть проблема при обращении к нему он не затирает старые символы, что были записаны ранее. Может кто помочь "допилить" или указать на ошибку?
Спасибо, посмотрю в этом направлении
Буду экспериментировать, спасибо за совет. Но в случае с номером телефона затрется все, кроме текущей выводимой позиции. Пока использую вход En с rtrig для первоначальной очистки.
Прямо сейчас думаю над этим вопросом, в мыслях после достижения определенной ячейки будет сообщение о сохранении номера, если подтверждаю, то собранная из строки UlongInt запишу в епром, если нет счетчик возвращается в 1 ячейку с номером