-
Notifications
You must be signed in to change notification settings - Fork 690
Expand file tree
/
Copy pathStepperDriver2PWM.h
More file actions
77 lines (66 loc) · 2.28 KB
/
StepperDriver2PWM.h
File metadata and controls
77 lines (66 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef STEPPER_DRIVER_2PWM_h
#define STEPPER_DRIVER_2PWM_h
#include "../common/base_classes/StepperDriver.h"
#include "../common/foc_utils.h"
#include "../common/time_utils.h"
#include "../common/defaults.h"
#include "hardware_api.h"
/**
2 pwm stepper driver class
*/
class StepperDriver2PWM: public StepperDriver
{
public:
/**
StepperMotor class constructor
@param pwm1 PWM1 phase pwm pin
@param in1 IN1A phase dir pin
@param pwm2 PWM2 phase pwm pin
@param in2 IN2A phase dir
@param en1 enable pin phase 1 (optional input)
@param en2 enable pin phase 2 (optional input)
*/
StepperDriver2PWM(int pwm1, int* in1, int pwm2, int* in2, int en1 = NOT_SET, int en2 = NOT_SET);
/**
StepperMotor class constructor
@param pwm1 PWM1 phase pwm pin
@param dir1 DIR1 phase dir pin
@param pwm2 PWM2 phase pwm pin
@param dir2 DIR2 phase dir pin
@param en1 enable pin phase 1 (optional input)
@param en2 enable pin phase 2 (optional input)
*/
StepperDriver2PWM(int pwm1, int dir1, int pwm2, int dir2, int en1 = NOT_SET, int en2 = NOT_SET);
/** Motor hardware init function */
virtual int init() override;
/** Motor disable function */
virtual void disable() override;
/** Motor enable function */
virtual void enable() override;
// hardware variables
int pwm1; //!< phase 1 pwm pin number
int dir1a; //!< phase 1 INA pin number
int dir1b; //!< phase 1 INB pin number
int pwm2; //!< phase 2 pwm pin number
int dir2a; //!< phase 2 INA pin number
int dir2b; //!< phase 2 INB pin number
int enable_pin1; //!< enable pin number phase 1
int enable_pin2; //!< enable pin number phase 2
/**
* Set phase voltages to the harware
*
* @param Ua phase A voltage
* @param Ub phase B voltage
*/
virtual void setPwm(float Ua, float Ub) override;
/**
* Set phase voltages to the hardware
* > Only possible is the driver has separate enable pins for both phases!
*
* @param sa phase A state : active / disabled ( high impedance )
* @param sb phase B state : active / disabled ( high impedance )
*/
virtual void setPhaseState(PhaseState sa, PhaseState sb) override;
private:
};
#endif