Files
MyOwnEtherCATDevice/Cards/EaserCAT-2000/Firmware/include/StepGen.h
2024-11-20 11:18:13 +01:00

43 lines
1.1 KiB
C++
Executable File

#ifndef STEPGEN
#define STEPGEN
#include <HardwareTimer.h>
class StepGen
{
private:
volatile uint8_t timerIsRunning;
volatile int32_t timerStepPosition;
volatile int32_t timerStepDirection;
volatile int32_t timerStepPositionAtEnd;
volatile int32_t timerNewEndStepPosition;
volatile uint32_t timerNewCycleTime;
volatile double_t actualPosition;
volatile double_t requestedPosition;
volatile uint8_t enabled;
HardwareTimer *MyTim;
HardwareTimer *MyTim2;
uint16_t stepsPerMM;
uint8_t dirPin;
PinName stepPin;
uint32_t timerChan;
const uint32_t maxFreq = 100000;
volatile uint32_t prevFreq1 = 0;
volatile uint32_t prevFreq2 = 0;
public:
static uint32_t sync0CycleTime;
volatile uint32_t pwmCycleTime;
StepGen(TIM_TypeDef *Timer, uint32_t timerChannel, PinName stepPin, uint8_t dirPin, void irq(void));
void reqPos(double_t pos);
double reqPos();
void actPos(double_t pos);
double actPos();
void handleStepper(void);
void timerCB();
void setScale(int16_t spm);
void enable(uint8_t yes);
};
#endif