CoilGun

Committer:
mlaane
Date:
Sat Sep 14 22:31:22 2013 +0000
Revision:
3:7273ba733560
Parent:
2:781ea1999ad3
Child:
4:0e2bdd3d52bc
Implemented discharging; Problems with Timeout

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"
Reiko 0:2d5820be7f51 5
Reiko 0:2d5820be7f51 6 class CoilGun {
Reiko 0:2d5820be7f51 7 public:
Reiko 1:aa39e3a9d06f 8 CoilGun(PinName chargePin, PinName kickPinName, PinName donePinName);
Reiko 0:2d5820be7f51 9
Reiko 2:781ea1999ad3 10 void kick(unsigned int length);
mlaane 3:7273ba733560 11 void discharge(void); //Method that starts discharging
Reiko 0:2d5820be7f51 12 void setCharge(bool chargeState);
Reiko 0:2d5820be7f51 13
Reiko 0:2d5820be7f51 14 private:
Reiko 1:aa39e3a9d06f 15 DigitalOut chargePin;
Reiko 1:aa39e3a9d06f 16 DigitalOut kickPin;
Reiko 1:aa39e3a9d06f 17 InterruptIn done;
Reiko 1:aa39e3a9d06f 18 void doneCallback(void);
mlaane 3:7273ba733560 19
mlaane 3:7273ba733560 20 bool kicking; //True while kick is in progress
mlaane 3:7273ba733560 21 Timeout kickTimeout; // This will end kicking
Reiko 2:781ea1999ad3 22 void kickEnd(void);
mlaane 3:7273ba733560 23
mlaane 3:7273ba733560 24 bool discharging; //True as long discharging is in progress
mlaane 3:7273ba733560 25 Timeout dischargeTimeout; // This will end discharging
mlaane 3:7273ba733560 26 Ticker discharger; // Calls short kicks during discharge
mlaane 3:7273ba733560 27 void dischargeKick(void); //Short kick for discharging
mlaane 3:7273ba733560 28 void dischargeEnd(void); //Method that ends discharging (dischargeTimeout calls this)
Reiko 0:2d5820be7f51 29 };
Reiko 0:2d5820be7f51 30
Reiko 0:2d5820be7f51 31 #endif