DoubleCoilGun
Fork of CoilGun by
Diff: coilgun.cpp
- Revision:
- 8:eee78d8bfdb9
- Parent:
- 7:95d16e38d0d8
- Child:
- 9:b663ba6a53fe
--- a/coilgun.cpp Thu Sep 19 13:11:48 2013 +0000 +++ b/coilgun.cpp Thu Sep 19 14:29:24 2013 +0000 @@ -3,10 +3,13 @@ Coilgun::Coilgun(PinName kickPinName ,PinName chargePinName, PinName donePinName): kickPin(kickPinName),chargePin(chargePinName), donePin(donePinName) { + isCharged = false; state = idle; kickPin = 1; chargePin = 0; donePin.fall(this, &Coilgun::chargeEnd); + + discharge(); // For safety reasons. } void Coilgun::kick(unsigned int length) { @@ -38,6 +41,7 @@ changeState(charging); kickPin = 1; chargePin = 1; + isCharged = true; } void Coilgun::chargeEnd(){ @@ -49,6 +53,7 @@ changeState(discharging); dischargeTimeout.attach(this, &Coilgun::dischargeEnd, 10.0); // End discharging after 10 seconds discharger.attach_us(this, &Coilgun::dischargeKick, 5000); // calls short kick every 5ms + isCharged = false; } void Coilgun::dischargeEnd(void) {