Реализовал пресеты. Долго выбирал способ, пока остановился на таком:
Код: Выделить всё
~ - поворот энкодера
i - короткое нажатие энкодера
I - длинное нажатие энкодера
x - величина мигает и редактируется
OFF ~ Stb ~ 300 ~ 350 ~ Add ~ dEL
I i i i i i
Timer1 100x 300x 350x 350x
i i i i i
Timer2 5.00x 8.20x 9.00x 9.00x
Для добавления пресета нужно войти в пункт Add основного меню и нажать энкодер. Добавляется пресет всегда после последнего, в него копируются значения с последнего пресета и сразу происходит вход в редактирование. После редактирования пресет становится активным. Всего можно добавить до 20 пресетов, хотя можно сделать хоть 100.
Для удаления пресета нужно войти в пункт dEL основного меню и нажать энкодер. Всегда удаляется последний пресет.
Сохранение номера текущего пресета происходит при входе в режим OFF. При следующем включении будет использоваться этот же пресет, если включить фен снятием с подставки. Если включить поворотом энкодера, то пойдем подряд с нулевого пресета.
Реализация пресетов не понравилась, мелькают какие-то цифры, а что это - непонятно. Но если удалить все пресеты (нулевой всегда остается), то в меню остается лишь лишнее Add, а это пережить можно.
Изменил еще кое-что из мелочи. При охлаждении фена теперь надпись OFF мигает. При редактировании всегда вслед за температурой попадаем в регулировку оборотов (раньше - только если температура не изменялась, иначе выход из регулировки). Настройку таймеров сделал из режима OFF долгим удержанием кнопки энкодера. Timer1 - это задержка ON -> Stb, Timer2 - задержка Stb -> OFF. Если Timer1 = 0 то когда фен кладется на подставку, он сразу переходит в Stb. Если Timer1 = 0 и Timer2 = 0, то когда фен кладется на подставку, он сразу переходит в OFF. Если Timer2 = 0, то режима Stb нет вообще, его нельзя включить даже энкодером.
Жду замечаний по глюкам, пока работу над феном прекращаю.