library for stepping motor

Committer:
j_rocket_boy
Date:
Sun Mar 08 03:38:37 2020 +0000
Revision:
0:9da9efc2119c
Firm ware for Antenna rotator

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 0:9da9efc2119c 1 #ifndef SUTEPPA_H
j_rocket_boy 0:9da9efc2119c 2 #define SUTEPPA_H
j_rocket_boy 0:9da9efc2119c 3
j_rocket_boy 0:9da9efc2119c 4 #include "mbed.h"
j_rocket_boy 0:9da9efc2119c 5 #ifndef M_PI
j_rocket_boy 0:9da9efc2119c 6 #define M_PI 3.14159265359
j_rocket_boy 0:9da9efc2119c 7 #endif
j_rocket_boy 0:9da9efc2119c 8
j_rocket_boy 0:9da9efc2119c 9 class Suteppa
j_rocket_boy 0:9da9efc2119c 10 {
j_rocket_boy 0:9da9efc2119c 11 public:
j_rocket_boy 0:9da9efc2119c 12 Suteppa();
j_rocket_boy 0:9da9efc2119c 13 void init(unsigned long allStep, void (*stepper)(int));
j_rocket_boy 0:9da9efc2119c 14 void setSpeed(unsigned long speed);
j_rocket_boy 0:9da9efc2119c 15
j_rocket_boy 0:9da9efc2119c 16 void setDefaultSmooth(unsigned long step, unsigned long initSpeed);
j_rocket_boy 0:9da9efc2119c 17
j_rocket_boy 0:9da9efc2119c 18 void beginSmooth(unsigned long step, unsigned long initSpeed);
j_rocket_boy 0:9da9efc2119c 19 void beginSmooth();
j_rocket_boy 0:9da9efc2119c 20
j_rocket_boy 0:9da9efc2119c 21 void endSmooth(){_smooth = false;};
j_rocket_boy 0:9da9efc2119c 22
j_rocket_boy 0:9da9efc2119c 23 long getStep(){return _step;};
j_rocket_boy 0:9da9efc2119c 24 long getStepAbsolute(){return _step%_allStep;};
j_rocket_boy 0:9da9efc2119c 25
j_rocket_boy 0:9da9efc2119c 26 unsigned long getSpeed(){return _speed;};
j_rocket_boy 0:9da9efc2119c 27
j_rocket_boy 0:9da9efc2119c 28 void rotate(int mode, long step, bool sync);
j_rocket_boy 0:9da9efc2119c 29 void rotate(int mode, long step);
j_rocket_boy 0:9da9efc2119c 30
j_rocket_boy 0:9da9efc2119c 31 void setHome();
j_rocket_boy 0:9da9efc2119c 32 bool tick();
j_rocket_boy 0:9da9efc2119c 33
j_rocket_boy 0:9da9efc2119c 34 static const int RELATIVE = 0;
j_rocket_boy 0:9da9efc2119c 35 static const int ABSOLUTE = 1;
j_rocket_boy 0:9da9efc2119c 36 static const int ABSOLUTE_SKIP = 2;
j_rocket_boy 0:9da9efc2119c 37 private:
j_rocket_boy 0:9da9efc2119c 38 void _delay(unsigned long time);
j_rocket_boy 0:9da9efc2119c 39
j_rocket_boy 0:9da9efc2119c 40 void _rotateAbsolute(long step, bool skip, bool sync);
j_rocket_boy 0:9da9efc2119c 41 void _rotateRelative(long step, bool sync);
j_rocket_boy 0:9da9efc2119c 42
j_rocket_boy 0:9da9efc2119c 43 void (*_stepper)(int);
j_rocket_boy 0:9da9efc2119c 44 void (*_turner)(int);
j_rocket_boy 0:9da9efc2119c 45
j_rocket_boy 0:9da9efc2119c 46 bool _smooth;
j_rocket_boy 0:9da9efc2119c 47
j_rocket_boy 0:9da9efc2119c 48 long _step;
j_rocket_boy 0:9da9efc2119c 49
j_rocket_boy 0:9da9efc2119c 50 unsigned long _allStep;
j_rocket_boy 0:9da9efc2119c 51 unsigned long _speed;
j_rocket_boy 0:9da9efc2119c 52 unsigned long _initDiff;
j_rocket_boy 0:9da9efc2119c 53 unsigned long _smoothStep;
j_rocket_boy 0:9da9efc2119c 54 unsigned long _initSpeed;
j_rocket_boy 0:9da9efc2119c 55
j_rocket_boy 0:9da9efc2119c 56 unsigned long _defaultSmoothStep;
j_rocket_boy 0:9da9efc2119c 57 unsigned long _defaultInitSpeed;
j_rocket_boy 0:9da9efc2119c 58
j_rocket_boy 0:9da9efc2119c 59 int _r_direction;
j_rocket_boy 0:9da9efc2119c 60 unsigned long _r_step;
j_rocket_boy 0:9da9efc2119c 61 unsigned long _r_smoothStep;
j_rocket_boy 0:9da9efc2119c 62 bool _r_smooth;
j_rocket_boy 0:9da9efc2119c 63 float _r_max;
j_rocket_boy 0:9da9efc2119c 64 unsigned int _r_i;
j_rocket_boy 0:9da9efc2119c 65 unsigned long _r_time;
j_rocket_boy 0:9da9efc2119c 66 unsigned long _r_interval;
j_rocket_boy 0:9da9efc2119c 67
j_rocket_boy 0:9da9efc2119c 68 float sigmoid(float x);
j_rocket_boy 0:9da9efc2119c 69 Timer timer;
j_rocket_boy 0:9da9efc2119c 70 };
j_rocket_boy 0:9da9efc2119c 71
j_rocket_boy 0:9da9efc2119c 72 #endif