Ja genau. Du kannst dir das so vorstellen als hättest du einen externen Zähler den du jede Sekunde ausliest.

Du mußte jetzt nur noch schauen ob du den Counter bei jeder Ausgabe wieder auf null setzt, oder den Counter durchlaufen läset und die Differenz rechnest. Wenn du den Counter auf Null setzt, dann solltest du erst den Wehrt in eine Variable setzten, und dann auf Null setzen. Erst dann die Ausgabe auf die Schnittstelle senden.

Noch mal zu deinem Prog mit dem Interrrupt. Selbst wenn das Programm in die (Datensenden) Routine springen, hättest du immer das Problem, dass während der Ausführung dieser Routine keine weitere Interrrupt ausgeführt werden können weil die Interrrupts blockiert sind, und du so Impulse verlieren kannst. Beim AVR kannst du keine zwei Interrrupt gleichzeitig ausführen, oder aus einem Interrrupt in einen andren springen.