Da die ISR recht kurz ist, sollte es auch mit einer so hohen Frequenz noch funktionieren. Einfach nur in der ISR Zählen ist aber ggf. auch unnötig - das kann der Timer auch in Hardware. Also einfach den Vorteiler um den Faktor 256 höher setzen und dann das Timer register auslesen statt der Variabele Counter. Besser wäre es da aber den 16 Bit timer(1) zu nutzen - dann hätte man auch da 16 Bit Auflösung. Oft reicht das. Der Timer direkt hätte auch noch gleich den Vorteil, das da Hardware für den ungestörten Zugriff auch 16 Bit werte vorhanden ist. Bei der Softwarelösung müsste man die Zugriffe auf Counter im Hauptprogramm noch alle mit Cli() ... Sei() schützen, wenn es nicht zu seltenen Ausreißern kommen darf.