Also - Du möchtest als niedrigste Frequenz 1Hz messen. Die "Zählzeit" (oder auch Torzeit genannt) sollte deshalb nicht kleiner sein als 1 Sekunde. Längere Torzeiten liefern zwar eine höhere Auflösung, machen die Messung aber auch träger.

1 Sekunde hätte den Charme, dass Du den Wert nicht mehr umrechnen musst: Die Zahl der Impulse ist gleich der Frequenz. Wenn Du bis 1kHz messen möchtest müsstest Du allerdings berücksichtigen, dass Timer0 nur bis 256 zählen kann. Also müsstest Du eine Überlauf-ISR einrichten, in der zu einer (Word!)-Variablen bei jedem Überlauf 256 addiert wird - oder aber auf den 16bit-Timer1 wechseln.

Die Sekunde müsstest Du mit einem anderen Timer realisieren: Bei 16MHz und einem Prescaler von 1024 hättest Du eine Taktfrequenz von 15625Hz, d.h. der Timer zählt in 1 Sek um 15625 weiter. Wenn Du Timer1 mit (65535 - 15625), d.h. 49910 vorlädst, läuft er immer nach genau 1 Sekunde über. In der ISR müsstest Du dann den aktuellen Wert vom Frequenz-Zähl-Timer0 zu Deinem Word addieren, Timer0 auf 0 setzen, Timer1 auf 49910, den Wert von Word an eine andere Variable übergeben und Word für die nächste Zählung auf 0 setzen.

Klar? (Bestimmt führen noch ein paar andere Wege nach Rom - aber diesen würde ich benutzen...)

P.S.: Mit "Enable TimerX" aktiviertst Du übrigens nicht den Timer (das geschieht mit Start TimerX), sondern seinen Überlauf-Interrupt!