#include <timeObj.h>

#define LED_PIN     4
#define TONE_PIN    3
#define TONE_HZ     2500
#define TONE_START  1000
#define TONE_STEP   15
#define TONE_CUTOFF 45
#define LED_MS      100


timeObj LEDTimer(LED_MS);
timeObj toneTimer(TONE_START);
float   timeMs;

void setup() {
  Serial.begin(TONE_HZ);
  pinMode(LED_PIN,OUTPUT);
}

void loop() {

  if (toneTimer.ding()) {
     timeMs = toneTimer.getTime();
     timeMs = timeMs - TONE_STEP;
    if (timeMs<=TONE_CUTOFF) {
      timeMs = TONE_START;
    }
    toneTimer.setTime(timeMs);
    tone(TONE_PIN, TONE_HZ);
    digitalWrite(LED_PIN,HIGH);
    LEDTimer.start();
    Serial.println(timeMs);
  } else if (LEDTimer.ding()) {
    noTone(TONE_PIN);
    digitalWrite(LED_PIN,LOW);
    LEDTimer.reset();
  }
}