Sowas erschlägt man am besten in dem eigentlichem Timerinterrupt mit hilfe von zwei Variablen und zwar etwa so:

Variablen :
A = 200 (200 ms Tondauer und Pause)
B = 6 (Anzahl der Pieper*2) also 3 Pieper werden ausgegeben

In der ISR:
Code:
Wenn B = gerade Zahl (man kann hier Bit 0 auswerten)
   Toogle Pin (hier Dein Pieperpin)
sonst Pin = 0

A=A-1

Wenn A = 0
   A=200
   B=B-1
   Wenn B = 0
      Timer aus
      Pin = 0
Starten tust Du das in einer Unterfunktion, die sieht so aus:
Code:
A=200
B = 6 (Für 3 Pieper)
Timer start
Sorry für diese Pseudocode, es sollte aber ziemlich leicht zu implementieren sein

Gruß Sebastian

P.S.
Das ganze klappt wenn Du wirklich jede mS (1000Hz) einen Interrupt auslöst.
Das ergibt aber eine Frequenz von 500 Hz...
Wenn Du alle 500 µs einen Interrupt hast mußt Du A = 400 verwenden