Code hab ich nicht, aber einen Lösungsvorschlag:

Programmier dir einen Zähler als Zeitbasis, sagen wir, 1ms.
Bei jedem Timerüberlauf (jede 1ms) wird ein Interrupt ausgelöst, in welchem du zwei Zähler inkrementierst. Einen ms Zähler, der jeweils bis 1000 zählt und einen s Zähler, der dann logischerweise nur jeden tausendsten Überlauf inkrementiert wird.
Wenn ein Impuls von deinem Stromzähler eintrifft, brauchst du nur zwei Zählerwerte ([alter Zählerwert]-[neuer Zählerwert])vergleichen und bekommst so die Zeit in ms-Auflösung.