Ich würd im Timer eher nur ein Flag setzen und in der Main bei gesetztem Flag dann abfragen.
Wenn die Kommunikation mal länger dauert, die ISR deshalb blockiert wird und der Timer nochmal auslöst, obwohl er schon läuft,... kann dann ein lustiges Verhalten des AVR hervorrufen.

Dann sinds zwar nicht immer exakt 1000,000ms, aber so grobe Hausnummer stimmt schon. Und wenn grad ne andere Kommunikation über I2C läuft, würde die sonst durch den Timer unterbrochen werden. Wie der Bus da drauf reagiert: Noch nie probiert.