CoilGun

Committer:
mlaane
Date:
Sat Sep 14 22:57:17 2013 +0000
Revision:
4:0e2bdd3d52bc
Parent:
3:7273ba733560
Child:
6:4c75db8a43db
documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 0:2d5820be7f51 1 #ifndef COILGUN_H
Reiko 0:2d5820be7f51 2 #define COILGUN_H
Reiko 0:2d5820be7f51 3
Reiko 0:2d5820be7f51 4 #include "mbed.h"
mlaane 4:0e2bdd3d52bc 5
mlaane 4:0e2bdd3d52bc 6 /** Interface to the CoilGun*/
Reiko 0:2d5820be7f51 7 class CoilGun {
Reiko 0:2d5820be7f51 8 public:
mlaane 4:0e2bdd3d52bc 9 /** Create an instance of the CoilGun connected to specfied pins.
mlaane 4:0e2bdd3d52bc 10 *
mlaane 4:0e2bdd3d52bc 11 * @param chargePinName The charge pin.
mlaane 4:0e2bdd3d52bc 12 * @param kickPinName The kick pin.
mlaane 4:0e2bdd3d52bc 13 * @param donePinName The done pin.
mlaane 4:0e2bdd3d52bc 14 */
mlaane 4:0e2bdd3d52bc 15 CoilGun(PinName chargePinName, PinName kickPinName, PinName donePinName);
Reiko 0:2d5820be7f51 16
mlaane 4:0e2bdd3d52bc 17 /** Kick with coilgun.
mlaane 4:0e2bdd3d52bc 18 *
mlaane 4:0e2bdd3d52bc 19 * @param length The length of the kick in uS
mlaane 4:0e2bdd3d52bc 20 */
Reiko 2:781ea1999ad3 21 void kick(unsigned int length);
mlaane 4:0e2bdd3d52bc 22
mlaane 4:0e2bdd3d52bc 23 /** Discharge coilgun */
mlaane 4:0e2bdd3d52bc 24 void discharge(void);
mlaane 4:0e2bdd3d52bc 25
mlaane 4:0e2bdd3d52bc 26 /** turn charging on or off
mlaane 4:0e2bdd3d52bc 27 *
mlaane 4:0e2bdd3d52bc 28 * @param chargeState Set true to charge. False, to not charge.
mlaane 4:0e2bdd3d52bc 29 */
Reiko 0:2d5820be7f51 30 void setCharge(bool chargeState);
Reiko 0:2d5820be7f51 31
Reiko 0:2d5820be7f51 32 private:
Reiko 1:aa39e3a9d06f 33 DigitalOut chargePin;
Reiko 1:aa39e3a9d06f 34 DigitalOut kickPin;
mlaane 4:0e2bdd3d52bc 35 InterruptIn donePin;
Reiko 1:aa39e3a9d06f 36 void doneCallback(void);
mlaane 3:7273ba733560 37
mlaane 3:7273ba733560 38 bool kicking; //True while kick is in progress
mlaane 3:7273ba733560 39 Timeout kickTimeout; // This will end kicking
Reiko 2:781ea1999ad3 40 void kickEnd(void);
mlaane 3:7273ba733560 41
mlaane 3:7273ba733560 42 bool discharging; //True as long discharging is in progress
mlaane 3:7273ba733560 43 Timeout dischargeTimeout; // This will end discharging
mlaane 3:7273ba733560 44 Ticker discharger; // Calls short kicks during discharge
mlaane 3:7273ba733560 45 void dischargeKick(void); //Short kick for discharging
mlaane 3:7273ba733560 46 void dischargeEnd(void); //Method that ends discharging (dischargeTimeout calls this)
Reiko 0:2d5820be7f51 47 };
Reiko 0:2d5820be7f51 48
Reiko 0:2d5820be7f51 49 #endif