IRM2121のfork
Fork of IRM2121 by
IRM2121.h@0:fd5c1ea78a7c, 2014-11-09 (annotated)
- Committer:
- ryuna
- Date:
- Sun Nov 09 11:11:37 2014 +0000
- Revision:
- 0:fd5c1ea78a7c
- Child:
- 1:1f7a3a98a5f5
irm2121??????????????????
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" |
ryuna | 0:fd5c1ea78a7c | 7 | /** IRM2121 class, based on an InterruptIn pin, and a timer |
ryuna | 0:fd5c1ea78a7c | 8 | * use RoboCup Junior Soccer to find PULSE BALL. |
ryuna | 0:fd5c1ea78a7c | 9 | |
ryuna | 0:fd5c1ea78a7c | 10 | |
ryuna | 0:fd5c1ea78a7c | 11 | * Example: |
ryuna | 0:fd5c1ea78a7c | 12 | * @code |
ryuna | 0:fd5c1ea78a7c | 13 | * // Set interrupt and read sensor. |
ryuna | 0:fd5c1ea78a7c | 14 | * #include "mbed.h" |
ryuna | 0:fd5c1ea78a7c | 15 | * #include "IRM2121.h" |
ryuna | 0:fd5c1ea78a7c | 16 | * |
ryuna | 0:fd5c1ea78a7c | 17 | * IRM2121 IR(p21); |
ryuna | 0:fd5c1ea78a7c | 18 | * |
ryuna | 0:fd5c1ea78a7c | 19 | * int main() { |
ryuna | 0:fd5c1ea78a7c | 20 | * int range; |
ryuna | 0:fd5c1ea78a7c | 21 | |
ryuna | 0:fd5c1ea78a7c | 22 | * while(1) { |
ryuna | 0:fd5c1ea78a7c | 23 | * |
ryuna | 0:fd5c1ea78a7c | 24 | * IR.Send(); |
ryuna | 0:fd5c1ea78a7c | 25 | * wait_ms(10); |
ryuna | 0:fd5c1ea78a7c | 26 | * range = IR.Read(); |
ryuna | 0:fd5c1ea78a7c | 27 | * } |
ryuna | 0:fd5c1ea78a7c | 28 | * } |
ryuna | 0:fd5c1ea78a7c | 29 | * @endcode |
ryuna | 0:fd5c1ea78a7c | 30 | */ |
ryuna | 0:fd5c1ea78a7c | 31 | class IRM2121 { |
ryuna | 0:fd5c1ea78a7c | 32 | public: |
ryuna | 0:fd5c1ea78a7c | 33 | /** Create a IRM2121 object connected to the specified InterruptIn pin |
ryuna | 0:fd5c1ea78a7c | 34 | * |
ryuna | 0:fd5c1ea78a7c | 35 | * @param IRM_PIN InterruptIn pin to connect to |
ryuna | 0:fd5c1ea78a7c | 36 | */ |
ryuna | 0:fd5c1ea78a7c | 37 | IRM2121(PinName IRM_PIN); |
ryuna | 0:fd5c1ea78a7c | 38 | |
ryuna | 0:fd5c1ea78a7c | 39 | /** Set a IRM2121 Interrupt Pin |
ryuna | 0:fd5c1ea78a7c | 40 | * |
ryuna | 0:fd5c1ea78a7c | 41 | * @param none |
ryuna | 0:fd5c1ea78a7c | 42 | */ |
ryuna | 0:fd5c1ea78a7c | 43 | void Set(void); |
ryuna | 0:fd5c1ea78a7c | 44 | /** Read the result |
ryuna | 0:fd5c1ea78a7c | 45 | * |
ryuna | 0:fd5c1ea78a7c | 46 | * @param none |
ryuna | 0:fd5c1ea78a7c | 47 | */ |
ryuna | 0:fd5c1ea78a7c | 48 | |
ryuna | 0:fd5c1ea78a7c | 49 | int Read(void); |
ryuna | 0:fd5c1ea78a7c | 50 | |
ryuna | 0:fd5c1ea78a7c | 51 | protected: |
ryuna | 0:fd5c1ea78a7c | 52 | |
ryuna | 0:fd5c1ea78a7c | 53 | InterruptIn _event; |
ryuna | 0:fd5c1ea78a7c | 54 | Timer _timer; |
ryuna | 0:fd5c1ea78a7c | 55 | |
ryuna | 0:fd5c1ea78a7c | 56 | bool _Flag; |
ryuna | 0:fd5c1ea78a7c | 57 | bool _Valid; |
ryuna | 0:fd5c1ea78a7c | 58 | bool _Busy; |
ryuna | 0:fd5c1ea78a7c | 59 | int _Time; |
ryuna | 0:fd5c1ea78a7c | 60 | |
ryuna | 0:fd5c1ea78a7c | 61 | void _Start(void); |
ryuna | 0:fd5c1ea78a7c | 62 | void _Stop (void); |
ryuna | 0:fd5c1ea78a7c | 63 | |
ryuna | 0:fd5c1ea78a7c | 64 | }; |
ryuna | 0:fd5c1ea78a7c | 65 | |
ryuna | 0:fd5c1ea78a7c | 66 | #endif |