Nachdem ich mich wunderte, warum der counter nicht mit maximal möglicher Frequenz laufen können sollte und im Datenblatt auch keine Aussage dazu finden konnte, habe ich es ausprobiert.Als Counter kann er, wenn er extern ausgelöst wird, nur maximal die CPU Frequenz /2,5 messen.
Der braucht ja etwas Zeit um die Flankenänderung zu erkennen und zu verarbeiten.
Im Schaltplan der timer/counter befindet sich laut Datenblatt nur ein edge detector.
Das ist in erster Näherung nichts weiter als ein Schmitt-Trigger und der würde den counter nicht daran hindern mit maximaler Geschwindigkeit der Hardware zu laufen.
Nach dem Test sieht es so aus, als ob der Takt über ein mit dem CPU-Takt getaktetes Flipflop läuft.
Der Takteingang der timer/counter wird also offenbar doch mit dem CPU-Takt synchronisiert. d.h. obwohl der counter (die hardware) mindestens mit 20 MHz laufen kann (FCPU = 20 MHz, prescaler = 1), zählt er einen externen Takt bei FCPU = 8 Mhz noch bis knapp unter 4 MHz richtig und bei 1 MHz bis fast 500 kHz.
Darüber fällt die angezeigte Frequenz erst wieder ab - liegt wohl daran, daß er mehr und mehr Flanken verpaßt - und springt dann immer chaotischer rum (hatte keine Lust, das noch genauer zu untersuchen). Gilt jetzt nur für den mega48, und damit vermutlich für die meisten alten megas und tinies.
Bei den xmegas könnte es anders sein, die laufen mit bis zu 32 MHz und fast alle timer/counter haben eine high resolution extension, mit der sie noch 8 mal schneller laufen können.