Посмотрел значит я на комменты к прошлой записи, и понял, что ничо никому нихрена не ясно…
Значит будем “прояснять”. Как пример, привожу код таймера который будет управлять накачкой. Занимает 22 макроячейчки в XC9500XL. В целом в коментах все описано, но основная суть сего таймера в:
Если напряжение меньше порога (лог.1 на входе Low_voltage), отсчитывать заданное время подачи импульса на транзистор(задается битовым значением на входах pulse_time[0..7]). По началу и завершению периода накачки выдать сигнал-уведомление work_timer, для дальнейшего анализа.
Этот небольшой код, генерирует вот такую партянку из логических элементов конфигурация которых в последствии прошиваются в ПЛИС:
При виде которой, у меня возникает только одна единственная ассоциация: Ебипетская сила!
По результатам симуляции можно видеть что код работает хорошо:
Осталось дело за малым, накодить второй модуль, который будет управлять цепочкой сброса заряда в аналоговой цепи, управлять стартом АЦП внутри МК, и считывать от МК по SPI конфигурацию параметров работы таймеров.