Equator Strut Controller

Dependents:   EquatorStrutDigitalMonitor

EquatorStrutController.h

Committer:
pyrostew
Date:
2014-07-29
Revision:
0:a6ade00ff41d
Child:
2:3976e3f43470

File content as of revision 0:a6ade00ff41d:

#ifndef EQUATOR_STRUT_CONTROLLER_H
#define EQUATOR_STRUT_CONTROLLER_H

#include "mbed.h"

class EquatorStrut
{
public:
    EquatorStrut();
    void SetPower(double power);
    double GetPosition();
    double CurrentSpeed();
    void Home();
    void Enable();
    void Disable();
    
private:
    Timer SinInterruptInterval;
    Ticker InputReadTick;
    
    InterruptIn* HallSensor;
    
    PwmOut* PhaseA;
    PwmOut* PhaseB;
    
    DigitalIn* RGHSin;
    DigitalIn* RGHCos;
    
    DigitalOut* ResetLine;
    DigitalOut* PulseOut1;
    DigitalOut* PulseOut2;
      
    bool Valid();
    
    void InputRead();
    void HallEffectFall();
    
    char PinState;
    
    int FullWavePeriod;
    int PartWavePeriod;
    
    double position;
    
    int direction;
    
    bool Homing;
    bool HallTriggered;
    bool Enabled;
};

#endif