Create this program
Dependencies: mbed HCSR04 HMC6352 PID TextLCD
Diff: kicker.h
- Revision:
- 5:e07e380ddb93
- Parent:
- 3:901d18b901b4
- Child:
- 6:44c3bfbe2553
diff -r 577110fb3b04 -r e07e380ddb93 kicker.h --- a/kicker.h Fri Aug 07 06:51:51 2015 +0000 +++ b/kicker.h Sat Aug 08 12:39:18 2015 +0000 @@ -1,8 +1,8 @@ /** - * @file : kicker.h (0.1) + * @file : kicker.h (1.0) * @brief : kick the ball * @author : Shinnosuke KOIKE - * @date : 2015/08/07 + * @date : 2015/08/08 */ #ifndef KICKER_H @@ -11,7 +11,61 @@ #include "mbed.h" class Kicker { - +public: + Kicker(PinName kicker_, PinName brightness_); + ~Kicker(); + void kick(void); + +private: + DigitalOut kicker; + DigitalIn brightness; + Timer timer; + bool enableKick; + void count(void); }; -#endif \ No newline at end of file +// initialize +Kicker::Kicker(PinName kicker_, PinName brightness_): + kicker(kicker_), brightness(brightness_) { +} + +// end timer +Kicker::~Kicker() { + timer.reset(); + timer.stop(); +} + +// count and set a kick flag +void Kicker::count(void) { + timer.start(); + float val = timer.read(); + if (val >= 3) { + this->enableKick = 1; + } +} + +// if ball exist before their's eyes and was set a kick flag, kick the ball +void Kicker::kick(void) { + this->count(); + if (brightness == 0 && enableKick == 1) { + kicker = 1; + timer.reset(); + this->enableKick = 0; + } +} + +#endif + +/** + * example program + +#include "mbed.h" +#include "kicker.h" + +int main(void) { + Kicker kicker(D0, D1); + while (1) { + kicker.kick(); + } +} + */