Eingangsfrequenz

Einen Integer runterzuzählen kostet maximal 2-3 Takte. Bei 16 Mhz sollte man davon so gut wie nichts merken. digitalRead hingegen ist laaaaannnnngggsssaaaaaammmm. Wenn das wirklich unter Verdacht steht würde ich vorschlagen die Ports direkt auszulesen. Im Playground steht wie: Arduino Reference - Arduino Reference.

Und nur zur Sicherheit: ist der counter jetzt "VOLATILE" deklariert oder fehlt das noch? Zeig uns doch bitte mal das komplette Programm.