Bei den ATMegas kannst du einen Timer/Counter so einstellen, dass er als Counter arbeitet. Du stellst also als Taktgeber eine externe Quelle ein. Der Counter zählt dann immer bei einer steigenden oder fallenden (einstellbar) um 1 hoch.
Bei einem 16Bit Timer (Timer1 beim Mega32) reicht der Bereich bis 65535. Diesen Wert kannst du jederzeit aus den Registern TCNT1H (high byte) und TCNT1L (low byte) auslesen.

mfg
zerush