Редактирование значения переменной с помощью кнопок на LCD дисплее

sergey_mak
Offline
Зарегистрирован: 07.01.2014

Здравствуйте, такой вопрос. В программе имеются переменная - настроечный коэффициент, типа double, к примеру, consKp=0.044 Мне необходимо иногда его редактировать, целую и дробную часть, то есть число отображается на дисплее, кнопками влево вправо нужно двигать курсор по разрядам, а кнопками вверх вниз соответственно увеличивать и уменьшать разряд, под которым курсор. При этом при каждое изменение должно сохраняться. Ума не приложу как это можно сделать, помогите пожалуйста.


 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Если по разрядам - представьте число в виде строки

sergey_mak
Offline
Зарегистрирован: 07.01.2014

не совсем понимаю. а что это даст?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Предложил, как вариант.

Я делал немного не так, но в принципе вы можете вывести сколько нужно цифр и изменять их от 0 до 9, а потом сложить поразрядно.

sergey_mak
Offline
Зарегистрирован: 07.01.2014

Все равно не догоняю, может число как то преобразовать в массив, каждый элемент которого есть разряд числа, потом выполнять действия над каждым элементом, а потом из массива снова получить число? Или это глупость?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

sergey_mak пишет:

Все равно не догоняю, может число как то преобразовать в массив, каждый элемент которого есть разряд числа, потом выполнять действия над каждым элементом, а потом из массива снова получить число? Или это глупость?

Ну я именно это и предложил. А что, вам на самом деле требуется изменение этого числа в таких пределах, что нельзя менять его линейно?

sergey_mak
Offline
Зарегистрирован: 07.01.2014

Да, это я перемудрил. Ничего преобразовывать и не надо. Кнопками вправо, влево просто менять шаг приращения или убавления по закону 0.001, 0.01, 0.1, 1, а кнопками вверх вниз соответственно прибавлять или удалять.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

sergey_mak пишет:
Да, это я перемудрил. Ничего преобразовывать и не надо. Кнопками вправо, влево просто менять шаг приращения или убавления по закону 0.001, 0.01, 0.1, 1, а кнопками вверх вниз соответственно прибавлять или удалять.

Я делал на энкодере - намного удобней, чем кнопками.

sergey_mak
Offline
Зарегистрирован: 07.01.2014

Да, энкодер весьма удобно, но железо уже готово, там кнопки. Да и на самом деле менять числа нужно будет очень редко, только один параметр будет меняться регулярно, так что кнопки подойдут.