inital commit
This commit is contained in:
42
stepper.h
Normal file
42
stepper.h
Normal file
@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
class Stepper
|
||||
{
|
||||
private:
|
||||
volatile uint8_t * const _port;
|
||||
const uint8_t _pinA;
|
||||
const uint8_t _pinB;
|
||||
const uint8_t _pinC;
|
||||
const uint8_t _pinD;
|
||||
|
||||
static constexpr uint8_t acceleration = 5;
|
||||
static constexpr uint8_t speedFloor = 50;
|
||||
|
||||
bool endlessMove = false;
|
||||
bool endlessDriection = true;
|
||||
|
||||
uint16_t _speed = speedFloor;
|
||||
uint8_t _targetSpeed = 220;
|
||||
uint8_t _stepInterval = 0;
|
||||
|
||||
uint16_t _tickCounter = 0;
|
||||
|
||||
int32_t _currentStep = 0;
|
||||
int32_t _targetStep = 0;
|
||||
|
||||
void step(bool direction);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
Stepper( volatile uint8_t * const port, const uint8_t pinA, const uint8_t pinB, const uint8_t pinC, const uint8_t pinD): _port(port), _pinA(pinA), _pinB(pinB), _pinC(pinC), _pinD(pinD){}
|
||||
void tick();
|
||||
void moveTo(const int32_t step);
|
||||
void moveRelative(const int16_t dist);
|
||||
void setSpeed(const uint8_t speed);
|
||||
uint32_t isAt();
|
||||
bool isStoped();
|
||||
void setEndlesMove(bool endless, bool direction = true);
|
||||
};
|
Reference in New Issue
Block a user