Die lokalen Variablen in der ISR deklariert man gang normal (ohne Volatile), einfach innerhalt der ISR.

Die globalen Variablen die in der ISR verändert werden, und im Hauptprogramm (oder ggf. auch in einer anderen ISR) ausgelsen werden müssen als Volatile gekennzeichnet werden. Ähnliches gilt auch für Variablen die in der ISR gelesen werden und im Haptprogramm verändert werden. Die Deklaration also etwa so:

volatile unsigned int time ;


Die "Verbindug" vom ICP Eingang zum Inputcaptureflag (ICF1) ist immer da, außer bei einigen PWM modi die das ICP Register für was anderes nutzen. Man kann noch im Resgister TCCR1B einstellen, welche Flanke benutzt wird, hier soll das wohl die Steigende werden. Daszu muß man ggf. noch den Interrupt zum Input capture freigeben, üblicherweise in TIMSK1.