CoilGun
coilgun.h
- Committer:
- Reiko
- Date:
- 2013-09-18
- Revision:
- 6:4c75db8a43db
- Parent:
- 4:0e2bdd3d52bc
- Child:
- 8:eee78d8bfdb9
File content as of revision 6:4c75db8a43db:
#ifndef COILGUN_H #define COILGUN_H #include "mbed.h" /** Class for controlling coilgun */ class Coilgun { public: Coilgun(PinName kickPinName ,PinName chargePinName, PinName donePinName); void kick(unsigned int length); void kickEnd(void); void charge(void); void chargeEnd(void); void discharge(void); void dischargeEnd(void); private: enum State {idle, kicking, charging, discharging}; State state; DigitalOut kickPin; DigitalOut chargePin; InterruptIn donePin; Timeout kickTimeout; // This will end kicking Timeout dischargeTimeout; // This will end discharging Ticker discharger; // Calls short kicks during discharge void changeState(State new_state); void dischargeKick(void); void kick(unsigned int length, bool change_state); }; #endif