// PulseTrainGenerator (for Teensy LC)
// Generates pulse trains of 1 us pulses, counting 1 to 10, train interval 1000 us.
// fjkraan@electrickery.nl, 2026-02-05

#define FREQPIN 2
#define MAXCOUNT 10
#define PULSEWIDTH 1
#define PULSETRAININTERVAL 1000

int currentCount = 1;
int count;

void setup() {
  pinMode(FREQPIN, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {

  for (int i = 0; i < currentCount; i++) {
    digitalWrite(FREQPIN, LOW);
    delayMicroseconds(PULSEWIDTH);
    digitalWrite(FREQPIN, HIGH);
    delayMicroseconds(PULSEWIDTH);
  }
  delayMicroseconds(PULSETRAININTERVAL);
  currentCount++;
  if (currentCount > MAXCOUNT) currentCount = 1;
  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
