16 578
правок
Строка 1070: | Строка 1070: | ||
Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу: | Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу: | ||
'''0000''' 0000 0000 0000 | '''0000''' 0000 0000 0000 | ||
Старшие 4 бита - тип действия: | Старшие 4 бита - тип действия: | ||
0 - нет действия | * 0 - нет действия | ||
0b0001 - установить coil регистр в 0 | * 0b0001 - установить coil регистр в 0 | ||
0b0010 - установить coil регистр в 1 | * 0b0010 - установить coil регистр в 1 | ||
0b0011 - переключить coil регистр 0 <-> 1 | * 0b0011 - переключить coil регистр 0 <-> 1 | ||
0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки) | * 0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки) | ||
0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки) | * 0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки) | ||
0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии. | * 0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии. | ||
0000 '''0000 0000 0000''' | 0000 '''0000 0000 0000''' | ||
Младшие 12 бит - номер регистра '''без базового адреса'''. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит. | Младшие 12 бит - номер регистра '''без базового адреса'''. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит. | ||
Строка 1089: | Строка 1092: | ||
Также у кнопок есть дополнительная логика: | Также у кнопок есть дополнительная логика: | ||
Если канал выключен, и нажали кнопки на изменение яркость - канал включается на минимальную яркость и диммируется всегда вверх (если выбрано увеличение/уменьшение) | * Если канал выключен, и нажали кнопки на изменение яркость - канал включается на минимальную яркость и диммируется всегда вверх (если выбрано увеличение/уменьшение) | ||
При диммировании вниз яркость уменьшается до минимального значения 1% (не до нуля) | * При диммировании вниз яркость уменьшается до минимального значения 1% (не до нуля) | ||
Если выбрано изменение канала, отличного от яркости (например, Hue), и канал выключен - значение в регистре не будет менятся. То есть нельзя поменять с кнопки цвет выключенной ленты | * Если выбрано изменение канала, отличного от яркости (например, Hue), и канал выключен - значение в регистре не будет менятся. То есть нельзя поменять с кнопки цвет выключенной ленты | ||
И логика, не связанная с кнопками: | И логика, не связанная с кнопками: | ||
Если канал включается через coil (с кнопки или нет - не важно) и его яркость равна 0 - яркость устанавливается на 1% | * Если канал включается через coil (с кнопки или нет - не важно) и его яркость равна 0 - яркость устанавливается на 1% | ||
Если яркость канала через holding меняют с нуля на неноль - канал включается (в coil записывается 1) | * Если яркость канала через holding меняют с нуля на неноль - канал включается (в coil записывается 1) | ||
Если яркость канала через holding меняют с ненуля на ноль - канал выключается (в coil записывается 0) | * Если яркость канала через holding меняют с ненуля на ноль - канал выключается (в coil записывается 0) | ||
=== Прошивка 1.0 === | === Прошивка 1.0 === |