Вот пример того как подобное реализованно на другом микроконтроллере:
Собственно 12F675. На лапу внешнего прерывания заводим сигнал с вазовского датчика и таймером считаем сколько тиков длится импульс и общий период. Пишем в переменную. Это было в прерывании. В основном цикле умножаем на нужный коэффициент и програмным таймером выводим на другую лапу то, что нужно. И скважность и период получаются пропорциональны. Если взять другой пик с CCP, то программа еще проще станет. Насчет общей погрешности не тестировал, т.к. пока все происходит "на столе".
Можно сделать это на Carduino ?