Вот и допилил режим двухзначных светофоров. Теперь, в CV режима PWM канала в битах 2..0 можно выбрать собственно режим для каждого из 32-х каналов:
PWM_MODE_SIMPLE = 0,
PWM_MODE_SMOOTH = 1,
PWM_MODE_SMOOTH_DETACH = 2,
PWM_MODE_TL_GREEN = 3,
PWM_MODE_TL_RED = 4
т.е. задать свет огня лампы,
в бите 3 - режим сохранять в EEPROM последнее положение или нет.
а в битах 7..4 указать номер светофора от 0 до 15.
Еще есть запас на 3 типа режима. Потом биты CV кончатся
Можно добавить режим плавного "разгорания" огней светофора, правда они будут одновременно это делать: один начнет гаснуть, другой разгораться. Нужно ли это?
В итоге:
Код:
Скетч использует 13702 байт (44%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1679 байт (81%) динамической памяти, оставляя 369 байт для локальных переменных. Максимум: 2048 байт.
Недостаточно памяти, программа может работать нестабильно.
---------- Сообщение добавлено в 20:07 ---------- Предыдущие сообщение было в 19:51 ----------
Пожалуй нужно зарезервировать CV(или ответные команды по Loconet) для служебных целей:
- идентификация модулей: масштаб, ID модуля, ID модульной тусовки
- тип модуля (если дойдет до базы данных с полным описанием для автоматизации)
- версия прошивки
- показатели жизнеспособности: есть ли DCC на входе, наличие КЗ, полярность, потребляемый ток на рельсах
- что-то еще
Свои команды в локонет добавлять еще не приходилось, надо попробовать