STM32. Контроллер теплицы

Да просто мне непонятно, зачем нужны какие-то запреты?
Если у вас работает программа "обогрев", то зачем в ней какие-то запреты на охлаждение?
Само собой ясно, что в нагреве охлаждение не требуется, поэтому команд на включение какого-то механизма охлаждения в нём просто не должно быть.
И наоборот, если температура высокая - зачем включать отопление? - Незачем, его просто не должно быть в логике. А зачем тогда запрещать включение отопления?

У вас в логике зачем-то присутствуют запеты того, что и так ясно, что включаться не должно.
Вообще интересно было бы посмотреть на то, как построен алгоритм регулирования в целом, очень часто логика бывает страшно избыточной, запутанной и не продуманной (это я уже не вашу конструкцию имею в виду, а просто констатирую факт того, что часто встречается).