#4
Сообщение
Boroda » 31.01.2017{, 10:03}
Для этого нужны блоки, заменяющие все кривые библиотеки и надо определьться со структурой программы, которая подойдет почти под все проекты. Но сами понимаете - это не реально.
Если для динамической индикации, RS485 Modbus, DS18B20, NEC-IR, кнопок, АЦП, ЦифрФильтров, часов реального времени без DS1307 (одновременно работающих) подойдет способ прерывания 2мс и кучи маленьких подпрограмм, срабатывающих по флагам, то для опроса DHT22 надо использовать ногу с аппаратным прерыванием или таймером в режиме захвата, иначе RS485 и динамическая индикация будут работать некорректно, т.к. придется отключать все прерывания.
Работу с граф. экранами от сотиков тоже надо разбивать на кусочки, начинаем заполнять, потом происходит прерывание по таймеру, далее надо пробежаться по всей программе и снова продолжить заполнять экран.
Все датчики должны опрашиваться последовательно по таймеру. Все тяжелые преобразования Int_to_string, деления/умножения и т.д. должны отрабатывать только по изменению этого ИНТа, а не в каждом цикле и вначале программы инициализироваться. Дисплеи должны обновляться раз в секунду (защита от помех) или только по изменению выводимых данных (у меня это завязано на факт нажатия кнопок меню </>/+/-). Динамическая индикация у меня работает с буфером, закинул в него данные и оно там само крутится. И никаких Delay в программе, даже на 100 мкс.
Последний раз редактировалось
Boroda 31.01.2017{, 10:18}, всего редактировалось 1 раз.