CoilGun
coilgun.h
- Committer:
- mlaane
- Date:
- 2013-09-14
- Revision:
- 4:0e2bdd3d52bc
- Parent:
- 3:7273ba733560
- Child:
- 6:4c75db8a43db
File content as of revision 4:0e2bdd3d52bc:
#ifndef COILGUN_H #define COILGUN_H #include "mbed.h" /** Interface to the CoilGun*/ class CoilGun { public: /** Create an instance of the CoilGun connected to specfied pins. * * @param chargePinName The charge pin. * @param kickPinName The kick pin. * @param donePinName The done pin. */ CoilGun(PinName chargePinName, PinName kickPinName, PinName donePinName); /** Kick with coilgun. * * @param length The length of the kick in uS */ void kick(unsigned int length); /** Discharge coilgun */ void discharge(void); /** turn charging on or off * * @param chargeState Set true to charge. False, to not charge. */ void setCharge(bool chargeState); private: DigitalOut chargePin; DigitalOut kickPin; InterruptIn donePin; 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