IRM2121のfork

Fork of IRM2121 by Fumiya Fujisawa

Committer:
bousiya03
Date:
Sat Nov 15 00:38:54 2014 +0000
Revision:
1:1f7a3a98a5f5
Parent:
0:fd5c1ea78a7c
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryuna 0:fd5c1ea78a7c 1
ryuna 0:fd5c1ea78a7c 2
ryuna 0:fd5c1ea78a7c 3 #ifndef MBED_IRM_H
ryuna 0:fd5c1ea78a7c 4 #define MBED_IRM_H
ryuna 0:fd5c1ea78a7c 5
ryuna 0:fd5c1ea78a7c 6 #include "mbed.h"
bousiya03 1:1f7a3a98a5f5 7 #include "interruptin_mod.h"
bousiya03 1:1f7a3a98a5f5 8
ryuna 0:fd5c1ea78a7c 9 /** IRM2121 class, based on an InterruptIn pin, and a timer
ryuna 0:fd5c1ea78a7c 10 * use RoboCup Junior Soccer to find PULSE BALL.
ryuna 0:fd5c1ea78a7c 11
ryuna 0:fd5c1ea78a7c 12
ryuna 0:fd5c1ea78a7c 13 * Example:
ryuna 0:fd5c1ea78a7c 14 * @code
ryuna 0:fd5c1ea78a7c 15 * // Set interrupt and read sensor.
ryuna 0:fd5c1ea78a7c 16 * #include "mbed.h"
ryuna 0:fd5c1ea78a7c 17 * #include "IRM2121.h"
ryuna 0:fd5c1ea78a7c 18 *
ryuna 0:fd5c1ea78a7c 19 * IRM2121 IR(p21);
ryuna 0:fd5c1ea78a7c 20 *
ryuna 0:fd5c1ea78a7c 21 * int main() {
ryuna 0:fd5c1ea78a7c 22 * int range;
ryuna 0:fd5c1ea78a7c 23
ryuna 0:fd5c1ea78a7c 24 * while(1) {
ryuna 0:fd5c1ea78a7c 25 *
ryuna 0:fd5c1ea78a7c 26 * IR.Send();
ryuna 0:fd5c1ea78a7c 27 * wait_ms(10);
ryuna 0:fd5c1ea78a7c 28 * range = IR.Read();
ryuna 0:fd5c1ea78a7c 29 * }
ryuna 0:fd5c1ea78a7c 30 * }
ryuna 0:fd5c1ea78a7c 31 * @endcode
ryuna 0:fd5c1ea78a7c 32 */
ryuna 0:fd5c1ea78a7c 33 class IRM2121 {
ryuna 0:fd5c1ea78a7c 34 public:
ryuna 0:fd5c1ea78a7c 35 /** Create a IRM2121 object connected to the specified InterruptIn pin
ryuna 0:fd5c1ea78a7c 36 *
ryuna 0:fd5c1ea78a7c 37 * @param IRM_PIN InterruptIn pin to connect to
ryuna 0:fd5c1ea78a7c 38 */
ryuna 0:fd5c1ea78a7c 39 IRM2121(PinName IRM_PIN);
ryuna 0:fd5c1ea78a7c 40
ryuna 0:fd5c1ea78a7c 41 /** Set a IRM2121 Interrupt Pin
ryuna 0:fd5c1ea78a7c 42 *
ryuna 0:fd5c1ea78a7c 43 * @param none
ryuna 0:fd5c1ea78a7c 44 */
ryuna 0:fd5c1ea78a7c 45 void Set(void);
ryuna 0:fd5c1ea78a7c 46 /** Read the result
ryuna 0:fd5c1ea78a7c 47 *
ryuna 0:fd5c1ea78a7c 48 * @param none
ryuna 0:fd5c1ea78a7c 49 */
ryuna 0:fd5c1ea78a7c 50
ryuna 0:fd5c1ea78a7c 51 int Read(void);
ryuna 0:fd5c1ea78a7c 52
ryuna 0:fd5c1ea78a7c 53 protected:
ryuna 0:fd5c1ea78a7c 54
bousiya03 1:1f7a3a98a5f5 55 interruptin_mod _event;
ryuna 0:fd5c1ea78a7c 56 Timer _timer;
ryuna 0:fd5c1ea78a7c 57
ryuna 0:fd5c1ea78a7c 58 bool _Flag;
ryuna 0:fd5c1ea78a7c 59 bool _Valid;
ryuna 0:fd5c1ea78a7c 60 bool _Busy;
ryuna 0:fd5c1ea78a7c 61 int _Time;
ryuna 0:fd5c1ea78a7c 62
ryuna 0:fd5c1ea78a7c 63 void _Start(void);
ryuna 0:fd5c1ea78a7c 64 void _Stop (void);
ryuna 0:fd5c1ea78a7c 65
bousiya03 1:1f7a3a98a5f5 66 void (*_start_ptr)();
bousiya03 1:1f7a3a98a5f5 67 void (*_stop_ptr)();
bousiya03 1:1f7a3a98a5f5 68
ryuna 0:fd5c1ea78a7c 69 };
ryuna 0:fd5c1ea78a7c 70
ryuna 0:fd5c1ea78a7c 71 #endif