Что програмно? Каждый "уважающий себя" uC имеет тактирование от внутренней тактовой и режим захвата по фронту, и наоборот режим подсчета импульсов с внешнего PIO, правда здесь четко нужно период подсчета импульсов задавать, но уже вторым таймером - т.о. метод заполнения частотой меньше аппаратных ресурсов кушает.
На температурную стабилизацию не заморачивался никогда, т.к. фронты у исходного сигнала "плавали" и приходилось делать подобие медианного фильтра.
Сигналы сравнимые порядка 0.05*f тактирования таймера с приемлимой точностью не померять,- придется городить внешнюю схему или использовать метод заполнения временного интервала сигналом, но это если время преобразования не критично.
Удачи!