CoilGun

coilgun.h

Committer:
mlaane
Date:
2013-09-14
Revision:
3:7273ba733560
Parent:
2:781ea1999ad3
Child:
4:0e2bdd3d52bc

File content as of revision 3:7273ba733560:

#ifndef COILGUN_H
#define COILGUN_H

#include "mbed.h"
 
class CoilGun {
public:
    CoilGun(PinName chargePin, PinName kickPinName, PinName donePinName);
    
    void kick(unsigned int length);
    void discharge(void); //Method that starts discharging
    void setCharge(bool chargeState);
 
private:
    DigitalOut chargePin;
    DigitalOut kickPin;
    InterruptIn done;
    void doneCallback(void);
    
    bool kicking; //True while kick is in progress
    Timeout kickTimeout; // This will end kicking
    void kickEnd(void);
    
    bool discharging; //True as long discharging is in progress
    Timeout dischargeTimeout; // This will end discharging
    Ticker discharger; // Calls short kicks during discharge
    void dischargeKick(void); //Short kick for discharging
    void dischargeEnd(void); //Method that ends discharging (dischargeTimeout calls this)
};

#endif