Ки4о, голям инат си! Имаш n-битов таймер и n-битов кепчър. Като n==n. Какво сега значи да се препълни кепчъра? При настъпването на еди какво си събитие моментната стойност на таймера се прехвърля в кепчъра, откъдето можеш да я изчетеш когато имаш време, стига само да е преди следващото събитие. То това и му е целия смисъл на кепчъра. Защото в момента на събитието може да отработваш друго прекъсване или кой знае какво реъл-тайм. Разликата от новата и предната стойност ти дава интервала между двете, даже и при препълване на таймера (еднократно естествено!). Как изважда ядрото? Смятай. Колко е 1 - 0xFE?
Така че препълване на таймера не те бърка. А какво разбираш под препълване на кепчъра даже и идея си нямам
P.S. А нулирането на таймера в прекъсването на кепчъра е тъпо. Ти приемаш че прекъсването настъпва веднага, но не е така. Най-малкото имаш запазване на разни регистри в стека. Нищо не ти гарантира колко време след събитието ще го обслужиш.