Read IR data from TV Remote

Committer:
jdonnal
Date:
Mon Feb 03 16:14:43 2020 +0000
Revision:
1:0fadd6080445
Initial Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jdonnal 1:0fadd6080445 1
jdonnal 1:0fadd6080445 2 /* Parallax High Speed Continuous Servo
jdonnal 1:0fadd6080445 3 John Donnal 2018
jdonnal 1:0fadd6080445 4 */
jdonnal 1:0fadd6080445 5
jdonnal 1:0fadd6080445 6 #ifndef _IR_H
jdonnal 1:0fadd6080445 7 #define _IR_H
jdonnal 1:0fadd6080445 8
jdonnal 1:0fadd6080445 9 /**
jdonnal 1:0fadd6080445 10 * Includes
jdonnal 1:0fadd6080445 11 */
jdonnal 1:0fadd6080445 12 #include "mbed.h"
jdonnal 1:0fadd6080445 13
jdonnal 1:0fadd6080445 14 /**
jdonnal 1:0fadd6080445 15 * 38KHz IR Receiver (for Sony RM-EZ4 Remote)
jdonnal 1:0fadd6080445 16 */
jdonnal 1:0fadd6080445 17 class IrIn {
jdonnal 1:0fadd6080445 18
jdonnal 1:0fadd6080445 19 public:
jdonnal 1:0fadd6080445 20
jdonnal 1:0fadd6080445 21 /**
jdonnal 1:0fadd6080445 22 * Constructor.
jdonnal 1:0fadd6080445 23 *
jdonnal 1:0fadd6080445 24 * @param output mbed pin for input channel.
jdonnal 1:0fadd6080445 25 */
jdonnal 1:0fadd6080445 26 IrIn(PinName input);
jdonnal 1:0fadd6080445 27
jdonnal 1:0fadd6080445 28 /**
jdonnal 1:0fadd6080445 29 * Decode IR data, blocks until data is received
jdonnal 1:0fadd6080445 30 */
jdonnal 1:0fadd6080445 31 int read();
jdonnal 1:0fadd6080445 32 private:
jdonnal 1:0fadd6080445 33
jdonnal 1:0fadd6080445 34 void falling_edge_();
jdonnal 1:0fadd6080445 35 void rising_edge_();
jdonnal 1:0fadd6080445 36 InterruptIn ir_;
jdonnal 1:0fadd6080445 37 Timer t_;
jdonnal 1:0fadd6080445 38 int rx_in_progress_;
jdonnal 1:0fadd6080445 39 int rx_complete_;
jdonnal 1:0fadd6080445 40 int rx_bits_;
jdonnal 1:0fadd6080445 41 int msg_;
jdonnal 1:0fadd6080445 42 };
jdonnal 1:0fadd6080445 43
jdonnal 1:0fadd6080445 44 #endif /* CONTINUOUS_SERVO_H */