You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
936 B

#pragma once
#include "PulseGenerator.h"
#include "TeensyTimerTool.h"
class LaserController
{
public:
void begin(unsigned preTriggerPin, unsigned triggerPin, unsigned camPin);
void shoot();
protected:
PulseGenerator preTrigger, trigger, camera;
};
void LaserController::begin(unsigned preTriggerPin, unsigned triggerPin, unsigned camPin)
{
preTrigger.begin(preTriggerPin);
trigger.begin(triggerPin);
camera.begin(camPin);
}
void LaserController::shoot()
{
constexpr float t_warmup = 140 - 5.5;
constexpr float t_p = 10 - 3;
constexpr float t_camDelay = 130 - 7.5;
constexpr float t_int = 30 - 3;
preTrigger.schedulePulse(0, t_p); // immediately generate the pretrigger pulse
trigger.schedulePulse(t_warmup, t_p); // schedule the trigger pulse to start after the warmup time
camera.schedulePulse(t_camDelay, t_int); // schedule the cam pulse after the camDelay time
}