So unsauber fände ich die Lösung gar nicht. Da Du im Interrupt lediglich eine Variable hochzählen und überprüfen musst, ob diese schon bei 7000000 angekommen ist, stört das Dein Restprogramm nicht großartig.

Einzige andere Möglichkeit wäre es afaik, einen externen Takt für Deinen Zähler zu verwenden. Den könntest Du ja z.B. mit einem NE555 aufbauen und entsprechend langsam takten lassen.

Gruß,
askazo