uint16_t lastcount=0xffff;
Das einen "Befehl" zu nennen ist etwas hochtrabend. Das deklariert einen unsigned int und setzt ihn auf den Maximalwert.
sreg = SREG;
Speichert den Wert des Status Registers. Da stehen so Dinge drin wie das Carry Bit. Das Zero Bit. Oder das Sign Bit, die bei allen möglichen Operationen ausgewertet werden. Hier geht es aber um das globale Interrupt Enable Bit in Bit 7.
Siehe Datenblatt Seite 10
cli();
Deaktiviert die Interrupts indem das Interrupt Enable Bit gelöscht wird. Steht für "clear interrupts"
Das ist eine gute Idee, da die Zählvariable 16 Bit hat. Auf einem 8 Bit Prozessor hat man daher keinen atomaren Zugriff darauf. Es könnte sein, dass nachdem auslesen des einen Bytes genau an der Stelle ein Interrupt kommt und den Wert wieder inkrementiert. Dann ist es nicht mehr konsistent.
Dieses wird dann hier wieder auf den vorherigen Wert gesetzt:
SREG = sreg;
Das ist die Luxus-Variante von sei() (set interrupts), welches einfach das Interrupt Enable Bit setzt. Da man in diesem Fall eigentlich davon ausgehen kann dass das der Fall war.