CoilGun
coilgun.cpp@2:781ea1999ad3, 2013-09-14 (annotated)
- 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?
User | Revision | Line number | New 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 | } |