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.
33 lines
936 B
33 lines
936 B
3 years ago
|
#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
|
||
|
}
|