DoubleCoilGun

Dependents:   Telliskivi2_2014

Fork of CoilGun by Reiko Randoja

Committer:
Reiko
Date:
Sat Sep 14 17:30:54 2013 +0000
Revision:
2:781ea1999ad3
Parent:
1:aa39e3a9d06f
Child:
3:7273ba733560
Improved kick functionality

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 1:aa39e3a9d06f 1 #include "coilgun.h"
Reiko 0:2d5820be7f51 2
Reiko 1:aa39e3a9d06f 3 CoilGun::CoilGun(PinName chargePinName, PinName kickPinName, PinName donePin)
Reiko 1:aa39e3a9d06f 4 : chargePin(chargePinName), kickPin(kickPinName), done(donePin) {
Reiko 2:781ea1999ad3 5 done.fall(this, &CoilGun::doneCallback);
Reiko 0:2d5820be7f51 6 }
Reiko 0:2d5820be7f51 7
Reiko 2:781ea1999ad3 8 void CoilGun::kick(unsigned int length) {
Reiko 2:781ea1999ad3 9 chargePin = 0;
Reiko 2:781ea1999ad3 10 kickPin = 0;
Reiko 2:781ea1999ad3 11 Timeout kickFinish;
Reiko 2:781ea1999ad3 12 kickFinish.attach_us(this, &CoilGun::kickEnd, length);
Reiko 2:781ea1999ad3 13 }
Reiko 2:781ea1999ad3 14
Reiko 2:781ea1999ad3 15 void CoilGun::kickEnd(void) {
Reiko 2:781ea1999ad3 16 chargePin = 1;
Reiko 2:781ea1999ad3 17 kickPin = 1;
Reiko 0:2d5820be7f51 18 }
Reiko 0:2d5820be7f51 19
Reiko 0:2d5820be7f51 20 void CoilGun::setCharge(bool chargeState) {
Reiko 2:781ea1999ad3 21 kickPin = 1;
Reiko 1:aa39e3a9d06f 22 if (chargeState) {
Reiko 1:aa39e3a9d06f 23 chargePin = 1;
Reiko 0:2d5820be7f51 24 } else {
Reiko 1:aa39e3a9d06f 25 chargePin = 0;
Reiko 0:2d5820be7f51 26 }
Reiko 0:2d5820be7f51 27 }
Reiko 0:2d5820be7f51 28
Reiko 0:2d5820be7f51 29 void CoilGun::discharge() {
Reiko 1:aa39e3a9d06f 30 chargePin = 0;
Reiko 2:781ea1999ad3 31 kickPin = 0;
Reiko 0:2d5820be7f51 32 }
Reiko 0:2d5820be7f51 33
Reiko 0:2d5820be7f51 34 void CoilGun::doneCallback(void) {
Reiko 1:aa39e3a9d06f 35 chargePin = 0;
Reiko 0:2d5820be7f51 36 }