Выравнивание символов по правому краю
Выравнивание символов по правому краю
Всем привет. Возможно плохо искал, но не смог найти на форуме как сдвинуть число влево при подсчете на один символ. Накидал схемку, работает. Единицы,десятки,сотни,тысячи. Но в схеме идет привязка к нескольким блокам дисплеев. Возможно ли как-то по-другому собрать схему чтоб был один блок дисплея и сдвиг осуществлялся через вход?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сдвиг числ влево.
Кое-как понял, что вы написали. Сказали бы проще "Как выравнять строку по правому краю на дисплее HD44780?"
Если честно, то я не знаю. Но вашу схему я бы маленько упростил. После поиска длины строки поставил DMS (демультиплексор). И с его помощью выбирал экран.
Если честно, то я не знаю. Но вашу схему я бы маленько упростил. После поиска длины строки поставил DMS (демультиплексор). И с его помощью выбирал экран.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
[ref]MTSnik[/ref], Скажите, Эдуард, [ref]edyapd[/ref], правильно уловил Вашу затею?
Если да, тоя где-то выкладывал блок.
Но можно и штатными средствами.
Отправлено спустя 2 минуты 3 секунды:
Нарисуйте хотя-бы от руки на бумаге , сфоткайте и выложите зодумку.
Если да, тоя где-то выкладывал блок.
Но можно и штатными средствами.
Отправлено спустя 2 минуты 3 секунды:
Нарисуйте хотя-бы от руки на бумаге , сфоткайте и выложите зодумку.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
Верно.
То есть идет перебор чисел. Например единицы (числа от 0...9) располагаются на 16столбце, при переходе с10 до 99 идет отображение 15,16 столбце. Сотни 14,15,16. Тысячи 13,14,15,16 и т.д.
Отправлено спустя 3 минуты 13 секунд:
____________5
___________23
__________100
_________3890
Так
То есть идет перебор чисел. Например единицы (числа от 0...9) располагаются на 16столбце, при переходе с10 до 99 идет отображение 15,16 столбце. Сотни 14,15,16. Тысячи 13,14,15,16 и т.д.
Отправлено спустя 3 минуты 13 секунд:
____________5
___________23
__________100
_________3890
Так
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
[ref]MTSnik[/ref], Понял, сейчас набросаю штатными блоками...
Отправлено спустя 16 минут 55 секунд:
Типа так
Отправлено спустя 2 минуты 54 секунды:
Это для неспешных проектов.
Отправлено спустя 16 минут 55 секунд:
Типа так
Отправлено спустя 2 минуты 54 секунды:
Это для неспешных проектов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.


У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сдвиг числ влево.
По совету Edyapd переделал свой проект, добавил [dms] пришлось еще добавить блок (вычитание). Без него число начинало показ с 19Го столбца.
Отправлено спустя 5 минут 11 секунд:
Как-то так.
Отправлено спустя 5 минут 11 секунд:
Как-то так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сдвиг числ влево.
[ref]MTSnik[/ref], уберите блок вычитания. А на первый дисплей возьмите с Q1, второй с Q2 и т.д.
Сдвиг числ влево.
Понятно. Исправил.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
[ref]MTSnik[/ref], [ref]edyapd[/ref], По моему - неправильна сама идея по сути в том формате, в котором сейчас есть блок для дисплея. Код - просто монстр...
Если у блока дисплея появится вход позиции - тогда да!
Сама плата №2 в посте 5 имеет всего
несколько строк цикла. И всё.
При желании можно ускорить проект, добавив детектор изменения и обработку переменной при этом.
ИМХО.
Если у блока дисплея появится вход позиции - тогда да!
Сама плата №2 в посте 5 имеет всего
несколько строк цикла. И всё.
Код: Выделить всё
//Плата:2
//Наименование:Дополняем пробелами слева
//Комментарии:Значение - сколько хотим получить символов всего
while (_gtv2 != 5) {
_gtv1 = ((String("")) + (_gtv1));
_gtv2 = (_gtv2)+(1);
}
//Плата:3
ИМХО.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
[ref=#ff8000]Sancho[/ref], я разве спорю? Даже более, на основе вашего решения хотел сделать ПБ. Просто если это будет единичный случай, то не хочется заморачиваться. А если это супер нужная вещь, то стоит просить автора программы, чтобы добавил возможность выбора координат через вход.
[ref]MTSnik[/ref], возможно просто не решился добавлять ещё две дополнительные платы.
Просто вы смотрите на код, а он на визуальное восприятие схемы(моё мнение).
[ref]MTSnik[/ref], возможно просто не решился добавлять ещё две дополнительные платы.
Просто вы смотрите на код, а он на визуальное восприятие схемы(моё мнение).
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
Интересно, а так будет работать? У меня такого дисплея нет, чтобы проверить.
Отправлено спустя 2 минуты 33 секунды:
Если так не заработает, тогда надо добавить мультиплексору ещё один вход. На всех входах константу увеличить на один пробел. А вывод на дисплей сдвинуть на одну позицию влево.
Если так не заработает, тогда надо добавить мультиплексору ещё один вход. На всех входах константу увеличить на один пробел. А вывод на дисплей сдвинуть на одну позицию влево.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
Будет. Только нужно корректно вставить константы

Или, что-бы не запутаться, вот так:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
Так я посмотрел, что топикстартер использует только четырёхзначные числа, поэтому и сделал такие константы.
У меня просто сомнения были, что будет на выходе у MUX(а соответственно на входе строкового сумматора), когда на входе будет 4.
Если там будет null, то это как раз то, что надо.
[ref=#ff8000]Sancho[/ref], а ваш проект получается для пятизначных цифр.
У меня просто сомнения были, что будет на выходе у MUX(а соответственно на входе строкового сумматора), когда на входе будет 4.
Если там будет null, то это как раз то, что надо.
[ref=#ff8000]Sancho[/ref], а ваш проект получается для пятизначных цифр.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
как-бы да, но это только как пример, как идея не запутаться. но есть ещё отрицательные числа, у нас ведь int, а не uint, -12345, а это шесть символов

Под каждый конкретный случай делать необходимое - и будет ок.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
Я привел пример для теста, дальше лень было делать. Поэтому только на 4 цифры. Сборка ув. Sancho на 5, после идет счет сначала.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Сдвиг числ влево.
Решил, таки, допилить 
Каждый переделает или сделает дополнительные под свои нужду, при необходимости.

Каждый переделает или сделает дополнительные под свои нужду, при необходимости.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Сдвиг числ влево.
Но тогда и в блоке дисплея надо было исправить. Вывод должен начинаться с 16-го знакоместа.Sancho писал(а): 28 дек 2019, 10:53 но это только как пример, как идея не запутаться ....
Под каждый конкретный случай делать необходимое
А так да, мы любую программу делаем под конкретный случай.

И тогда пожалуй я бы внёс ещё одно исправление. После блока "Вычитание", я бы поставил переменную. И уже эту переменную подавал на блок MUX. Как мне кажется скорость маленько должна была бы возрасти. Иначе длина строки высчитывается для каждого входа MUX.
[spoiler]
Офтопик
Вот ещё бы попросить автора программы изменить код MUX и DMS. Сделать вместо конструкции if - else if. Скорость выполнения могла бы слегка увеличиться.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя