Telescope Control Library

Dependents:   PushToGo-F429

Committer:
caoyu@caoyuan9642-desktop.MIT.EDU
Date:
Mon Sep 24 19:36:48 2018 -0400
Revision:
19:fd854309cb4c
Parent:
0:6cb2eaf8b133
Fix bug in nudging with small speeds mentioned in the last commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caoyuan9642 0:6cb2eaf8b133 1 /*
caoyuan9642 0:6cb2eaf8b133 2 * ControllablePWMOut.h
caoyuan9642 0:6cb2eaf8b133 3 *
caoyuan9642 0:6cb2eaf8b133 4 * Created on: 2018Äê2ÔÂ9ÈÕ
caoyuan9642 0:6cb2eaf8b133 5 * Author: caoyuan9642
caoyuan9642 0:6cb2eaf8b133 6 */
caoyuan9642 0:6cb2eaf8b133 7
caoyuan9642 0:6cb2eaf8b133 8 #ifndef TELESCOPE_STEPOUT_H_
caoyuan9642 0:6cb2eaf8b133 9 #define TELESCOPE_STEPOUT_H_
caoyuan9642 0:6cb2eaf8b133 10
caoyuan9642 0:6cb2eaf8b133 11 #include "mbed.h"
caoyuan9642 0:6cb2eaf8b133 12
caoyuan9642 0:6cb2eaf8b133 13 class StepOut: protected PwmOut
caoyuan9642 0:6cb2eaf8b133 14 {
caoyuan9642 0:6cb2eaf8b133 15 public:
caoyuan9642 0:6cb2eaf8b133 16
caoyuan9642 0:6cb2eaf8b133 17 StepOut(PinName pin) :
caoyuan9642 0:6cb2eaf8b133 18 PwmOut(pin), stepCount(0), freq(1), status(IDLE)
caoyuan9642 0:6cb2eaf8b133 19 {
caoyuan9642 0:6cb2eaf8b133 20 // Stop the output
caoyuan9642 0:6cb2eaf8b133 21 this->period(1);
caoyuan9642 0:6cb2eaf8b133 22 this->write(0);
caoyuan9642 0:6cb2eaf8b133 23 tim.start();
caoyuan9642 0:6cb2eaf8b133 24 }
caoyuan9642 0:6cb2eaf8b133 25 virtual ~StepOut()
caoyuan9642 0:6cb2eaf8b133 26 {
caoyuan9642 0:6cb2eaf8b133 27 // Stop the PWM Output
caoyuan9642 0:6cb2eaf8b133 28 this->write(0);
caoyuan9642 0:6cb2eaf8b133 29 }
caoyuan9642 0:6cb2eaf8b133 30
caoyuan9642 0:6cb2eaf8b133 31 void start();
caoyuan9642 0:6cb2eaf8b133 32 void stop();
caoyuan9642 0:6cb2eaf8b133 33
caoyuan9642 0:6cb2eaf8b133 34 double setFrequency(double frequency);
caoyuan9642 0:6cb2eaf8b133 35 void resetCount();
caoyuan9642 0:6cb2eaf8b133 36 int64_t getCount();
caoyuan9642 0:6cb2eaf8b133 37
caoyuan9642 0:6cb2eaf8b133 38 private:
caoyuan9642 0:6cb2eaf8b133 39 typedef enum
caoyuan9642 0:6cb2eaf8b133 40 {
caoyuan9642 0:6cb2eaf8b133 41 IDLE = 0, STEPPING
caoyuan9642 0:6cb2eaf8b133 42 } stepstatus_t;
caoyuan9642 0:6cb2eaf8b133 43
caoyuan9642 0:6cb2eaf8b133 44 int64_t stepCount;
caoyuan9642 0:6cb2eaf8b133 45 double freq;
caoyuan9642 0:6cb2eaf8b133 46 stepstatus_t status;
caoyuan9642 0:6cb2eaf8b133 47 Timer tim;
caoyuan9642 0:6cb2eaf8b133 48
caoyuan9642 0:6cb2eaf8b133 49 };
caoyuan9642 0:6cb2eaf8b133 50
caoyuan9642 0:6cb2eaf8b133 51 #endif /* TELESCOPE_STEPOUT_H_ */
caoyuan9642 0:6cb2eaf8b133 52
caoyuan9642 0:6cb2eaf8b133 53