Ein Interrupt ist eine Unterbrechung im normalen Programmablauf. Sobald ein Interrupt ausgelöst wird, springt der Controller automatisch in die passende ISR (Interrupt Service Routine). Das ist im Prinzip eine ganz normale Funktion, nur daß man die eben nicht selber aufruft sondern das dem Controller überlässt.

Wenn du also den Timer so einstellst daß er alle 25µs überläuft, und den passenden Interrupt aktivierst, wird eben alle 25µs die ISR aufgerufen die du für den Timer-Interrupt geschrieben hast.

Du möchtest eine LED blinken lassen? Dann schalte in der ISR eben den entsprechenden Pin um. Und wenn sie langsamer blinken soll (also 50µs an - 50µs aus etc.), dann musst du den Pin eben bei jedem zweiten Aufruf der ISR umschalten. Dazu brauchst du natürlich eine Variable die mitzählt wie oft die ISR aufgerufen wurde (also einfach bei jedem Aufruf eins hochzählen).