Das ist eigentlich recht einfach, zumindest auf dem Atmel, ich hab das immer per pinchange int. und timer gemacht. Auf den genauen wert kommst ja auch nicht an bei dir. 1000ms ist aus, 2000ms ist an, irgendwo dazwischen schaltest du.
Hier hab ich sowas auch gemacht:
http://der-frickler.net/modellbau/avr/beeper