DoubleCoilGun

Dependents:   Telliskivi2_2014

Fork of CoilGun by Reiko Randoja

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) {