Это мой первый опыт общёния с контроллерами на старости лет, так что прошу сильно не пинать.
Итак, делается управляющая часть для НЧ-генератора 5Гц-1МГц. Она должна выполнять следующие функции:
1) Опрос состояния органов управления - кнопки, энкодер, переключатели.
2) Выдачу команд по SPI на ЦАП, управляющий частотой и релюшки переключения диапазонов.
3) Измерение частоты генератора , алгоритм приведён здесь: алгоритм
4) Отображение частоты и другой информации на LCD 16x2
Вполне возможно, потребуется дописывать функционал в дальнейшем, например, измерение напряжения с помощью встроенного АЦП и статистическую обработку частотомера.
Сейчас написаны пункты №1, №2, №4, и приступаю к №3. Вот тут-то и встал вопрос об общей структуре программы.
Фактически параллельно должны выполняться несколько задачь
№1 требует периодического выполнения по таймеру с точностью ,скажем, +-20% от номинала. Сейчас написана по прерыванию одного из таймеров.
№2 требует значительного времени на исполнение команды (рэле-медленное устройство)
№3 требует максимально быстрой и всегда одинаковой по кол-ву циклов реакции на прерывание ICx, в противном случае возникают ошибки счёта.
Где можно посмотреть - почитать общие подходы к построению таких программ? Единственная книга по теме, котораю попалась в руки - embedded multitasking
Но методика, изложенная там, показалась мне малореальной в практическом смысле в условиях постоянного дописывания функционала.
Да, пишется всё под pic24h