CoilGun
coilgun.h@6:4c75db8a43db, 2013-09-18 (annotated)
- Committer:
- Reiko
- Date:
- Wed Sep 18 11:20:31 2013 +0000
- Revision:
- 6:4c75db8a43db
- Parent:
- 4:0e2bdd3d52bc
- Child:
- 8:eee78d8bfdb9
Code formatting
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Reiko | 0:2d5820be7f51 | 1 | #ifndef COILGUN_H |
Reiko | 0:2d5820be7f51 | 2 | #define COILGUN_H |
Reiko | 6:4c75db8a43db | 3 | |
Reiko | 0:2d5820be7f51 | 4 | #include "mbed.h" |
Reiko | 6:4c75db8a43db | 5 | |
Reiko | 6:4c75db8a43db | 6 | /** Class for controlling coilgun */ |
Reiko | 6:4c75db8a43db | 7 | class Coilgun { |
Reiko | 0:2d5820be7f51 | 8 | public: |
Reiko | 6:4c75db8a43db | 9 | Coilgun(PinName kickPinName ,PinName chargePinName, PinName donePinName); |
Reiko | 2:781ea1999ad3 | 10 | void kick(unsigned int length); |
Reiko | 2:781ea1999ad3 | 11 | void kickEnd(void); |
mlaane | 3:7273ba733560 | 12 | |
Reiko | 6:4c75db8a43db | 13 | void charge(void); |
Reiko | 6:4c75db8a43db | 14 | void chargeEnd(void); |
Reiko | 6:4c75db8a43db | 15 | |
Reiko | 6:4c75db8a43db | 16 | void discharge(void); |
Reiko | 6:4c75db8a43db | 17 | void dischargeEnd(void); |
Reiko | 6:4c75db8a43db | 18 | |
Reiko | 6:4c75db8a43db | 19 | |
Reiko | 6:4c75db8a43db | 20 | private: |
Reiko | 6:4c75db8a43db | 21 | enum State {idle, kicking, charging, discharging}; |
Reiko | 6:4c75db8a43db | 22 | State state; |
Reiko | 6:4c75db8a43db | 23 | |
Reiko | 6:4c75db8a43db | 24 | DigitalOut kickPin; |
Reiko | 6:4c75db8a43db | 25 | DigitalOut chargePin; |
Reiko | 6:4c75db8a43db | 26 | InterruptIn donePin; |
Reiko | 6:4c75db8a43db | 27 | |
Reiko | 6:4c75db8a43db | 28 | Timeout kickTimeout; // This will end kicking |
mlaane | 3:7273ba733560 | 29 | Timeout dischargeTimeout; // This will end discharging |
mlaane | 3:7273ba733560 | 30 | Ticker discharger; // Calls short kicks during discharge |
Reiko | 6:4c75db8a43db | 31 | |
Reiko | 6:4c75db8a43db | 32 | void changeState(State new_state); |
Reiko | 6:4c75db8a43db | 33 | void dischargeKick(void); |
Reiko | 6:4c75db8a43db | 34 | void kick(unsigned int length, bool change_state); |
Reiko | 0:2d5820be7f51 | 35 | }; |
Reiko | 6:4c75db8a43db | 36 | |
Reiko | 0:2d5820be7f51 | 37 | #endif |