Здравствуйте!
Там черт ногу сломит.
В этой разработке, в алгоритме явно есть лишняя функция. Я реализовал стабилизацию пульсаций источника питания частотой сети (100 Гц). Это было сделано для возможности питания устройства от простого не стабилизированного источника питания - трансформатор, диодный мост, конденсатор. Функция требует много вычислительных ресурсов. Реализован быстрый регулятор напряжения со временем дискретизации 80 мкс. Но практически в этом нет необходимости, т.к. обычно контролеры питают от импульсных стабилизированных источников. Тем более, что такие блоки питания постоянно дешевеют. Очевидно этому способствует широкое использование 12 вольтовых источников для питания светодиодных лент.
Программа контроллера написана на Ассемблере. Это вторая причина, по которой алгоритм программы сложный и запутанный. На Ассемблере нет вычислений с плавающей запятой. Поэтому все вычисления происходят в формате с фиксированной запятой. Если интересно, я писал по
этому вопросу на форуме. Почитайте и вы поймете, насколько проще программировать с использованием плавающей запятой.
Если нет необходимости в стабилизации пульсаций источника питания, то для реализации контроллера вполне хватает ресурсов простой платы Ардуино, например, Arduino Nano. Даже с использованием вычислений с плавающей запятой.
В уроках Ардуино я провел
разработку такого контроллера. Я показал, как разрабатывается аппаратная часть, поэтапно писал программу.
Программа в Ардуино легко меняется, дорабатывается. Мне кажется, я описал все очень подробно, в том числе и алгоритм. Разработал программы верхнего уровня для настройки контроллера.
Почему вы не хотите воспользоваться алгоритмом этой разработки? Тем более, что в принципе алгоритмы ничем не отличаются. В обеих разработках реализованы регуляторы мощности и температуры.