使用红外接收库的一个demo code

Dependencies:   mbed

Fork of IR_remote by Armando Casalino

Committer:
adaphoto
Date:
Thu Jun 21 01:20:35 2018 +0000
Revision:
4:326b8df3add2
?????????demo code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adaphoto 4:326b8df3add2 1 /**
adaphoto 4:326b8df3add2 2 * IR receiver (Version 0.0.4)
adaphoto 4:326b8df3add2 3 *
adaphoto 4:326b8df3add2 4 * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
adaphoto 4:326b8df3add2 5 * http://shinta.main.jp/
adaphoto 4:326b8df3add2 6 */
adaphoto 4:326b8df3add2 7
adaphoto 4:326b8df3add2 8 #ifndef _RECEIVER_IR_H_
adaphoto 4:326b8df3add2 9 #define _RECEIVER_IR_H_
adaphoto 4:326b8df3add2 10
adaphoto 4:326b8df3add2 11 #include <mbed.h>
adaphoto 4:326b8df3add2 12
adaphoto 4:326b8df3add2 13 #include "RemoteIR.h"
adaphoto 4:326b8df3add2 14
adaphoto 4:326b8df3add2 15 /**
adaphoto 4:326b8df3add2 16 * IR receiver class.
adaphoto 4:326b8df3add2 17 */
adaphoto 4:326b8df3add2 18 class ReceiverIR {
adaphoto 4:326b8df3add2 19 public:
adaphoto 4:326b8df3add2 20
adaphoto 4:326b8df3add2 21 /**
adaphoto 4:326b8df3add2 22 * Constructor.
adaphoto 4:326b8df3add2 23 *
adaphoto 4:326b8df3add2 24 * @param rxpin Pin for receive IR signal.
adaphoto 4:326b8df3add2 25 */
adaphoto 4:326b8df3add2 26 explicit ReceiverIR(PinName rxpin);
adaphoto 4:326b8df3add2 27
adaphoto 4:326b8df3add2 28 /**
adaphoto 4:326b8df3add2 29 * Destructor.
adaphoto 4:326b8df3add2 30 */
adaphoto 4:326b8df3add2 31 ~ReceiverIR();
adaphoto 4:326b8df3add2 32
adaphoto 4:326b8df3add2 33 /**
adaphoto 4:326b8df3add2 34 * State.
adaphoto 4:326b8df3add2 35 */
adaphoto 4:326b8df3add2 36 typedef enum {
adaphoto 4:326b8df3add2 37 Idle,
adaphoto 4:326b8df3add2 38 Receiving,
adaphoto 4:326b8df3add2 39 Received
adaphoto 4:326b8df3add2 40 } State;
adaphoto 4:326b8df3add2 41
adaphoto 4:326b8df3add2 42 /**
adaphoto 4:326b8df3add2 43 * Get state.
adaphoto 4:326b8df3add2 44 *
adaphoto 4:326b8df3add2 45 * @return Current state.
adaphoto 4:326b8df3add2 46 */
adaphoto 4:326b8df3add2 47 State getState();
adaphoto 4:326b8df3add2 48
adaphoto 4:326b8df3add2 49 /**
adaphoto 4:326b8df3add2 50 * Get data.
adaphoto 4:326b8df3add2 51 *
adaphoto 4:326b8df3add2 52 * @param format Pointer to format.
adaphoto 4:326b8df3add2 53 * @param buf Buffer of a data.
adaphoto 4:326b8df3add2 54 * @param bitlength Bit length of the buffer.
adaphoto 4:326b8df3add2 55 *
adaphoto 4:326b8df3add2 56 * @return Data bit length.
adaphoto 4:326b8df3add2 57 */
adaphoto 4:326b8df3add2 58 int getData(RemoteIR::Format *format, uint8_t *buf, int bitlength);
adaphoto 4:326b8df3add2 59
adaphoto 4:326b8df3add2 60 private:
adaphoto 4:326b8df3add2 61
adaphoto 4:326b8df3add2 62 typedef struct {
adaphoto 4:326b8df3add2 63 RemoteIR::Format format;
adaphoto 4:326b8df3add2 64 int bitcount;
adaphoto 4:326b8df3add2 65 uint8_t buffer[64];
adaphoto 4:326b8df3add2 66 } data_t;
adaphoto 4:326b8df3add2 67
adaphoto 4:326b8df3add2 68 typedef struct {
adaphoto 4:326b8df3add2 69 State state;
adaphoto 4:326b8df3add2 70 int c1;
adaphoto 4:326b8df3add2 71 int c2;
adaphoto 4:326b8df3add2 72 int c3;
adaphoto 4:326b8df3add2 73 int d1;
adaphoto 4:326b8df3add2 74 int d2;
adaphoto 4:326b8df3add2 75 } work_t;
adaphoto 4:326b8df3add2 76
adaphoto 4:326b8df3add2 77 InterruptIn evt; /**< Interrupt based input for input. */
adaphoto 4:326b8df3add2 78 Timer timer; /**< Timer for WDT. */
adaphoto 4:326b8df3add2 79 Ticker ticker; /**< Tciker for tick. */
adaphoto 4:326b8df3add2 80 Timeout timeout; /**< Timeout for tail. */
adaphoto 4:326b8df3add2 81
adaphoto 4:326b8df3add2 82 data_t data;
adaphoto 4:326b8df3add2 83 work_t work;
adaphoto 4:326b8df3add2 84
adaphoto 4:326b8df3add2 85 void init_state(void);
adaphoto 4:326b8df3add2 86
adaphoto 4:326b8df3add2 87 void isr_wdt(void);
adaphoto 4:326b8df3add2 88 void isr_fall(void);
adaphoto 4:326b8df3add2 89 void isr_rise(void);
adaphoto 4:326b8df3add2 90
adaphoto 4:326b8df3add2 91 /**
adaphoto 4:326b8df3add2 92 * ISR timeout for tail detection.
adaphoto 4:326b8df3add2 93 */
adaphoto 4:326b8df3add2 94 void isr_timeout(void);
adaphoto 4:326b8df3add2 95
adaphoto 4:326b8df3add2 96 };
adaphoto 4:326b8df3add2 97
adaphoto 4:326b8df3add2 98 #endif