IRM2121のfork
Fork of IRM2121 by
IRM2121.h@1:1f7a3a98a5f5, 2014-11-15 (annotated)
- Committer:
- bousiya03
- Date:
- Sat Nov 15 00:38:54 2014 +0000
- Revision:
- 1:1f7a3a98a5f5
- Parent:
- 0:fd5c1ea78a7c
test
Who changed what in which revision?
User | Revision | Line number | New 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 |