Если сделать захват по внешним прерываниям, то теряется время на считывание регистра таймера. Если захват аппаратный (событие на выводе ICP1), то теряется время на переключение фронта. Обработчик на ассемблере.
Но с другой стороны (Если повар нам не врёт), построив захват на внешних прерываниях, мы всегда будем достигать какого-то минимума и максимума ШИМ который в любом случае не приведет к ошибке.