Lib for sending IR signals from mbed.

Dependents:   ir-puck ir-puck2 ir-puck

Committer:
cristea
Date:
Fri Jul 25 07:43:47 2014 +0000
Revision:
0:741de6c95ae9
Child:
1:402625e9170f
Initial commit of cleaned up IR sending lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cristea 0:741de6c95ae9 1
cristea 0:741de6c95ae9 2 #ifndef __IRSENDER__H__
cristea 0:741de6c95ae9 3 #define __IRSENDER__H__
cristea 0:741de6c95ae9 4
cristea 0:741de6c95ae9 5 #define DEBUG 0
cristea 0:741de6c95ae9 6
cristea 0:741de6c95ae9 7 #if DEBUG
cristea 0:741de6c95ae9 8 #define LOG(fmt, ...) do { __IRSENDER__irLogger.printf("[IRSender] "); __IRSENDER__irLogger.printf(fmt, ##__VA_ARGS__); } while(0)
cristea 0:741de6c95ae9 9 #define APPEND(fmt, ...) do { __IRSENDER__irLogger.printf(fmt, ##__VA_ARGS__); } while(0)
cristea 0:741de6c95ae9 10 static Serial __IRSENDER__irLogger(USBTX, USBRX);
cristea 0:741de6c95ae9 11 #else
cristea 0:741de6c95ae9 12 #define LOG(fmt, ...)
cristea 0:741de6c95ae9 13 #endif
cristea 0:741de6c95ae9 14
cristea 0:741de6c95ae9 15 /** Small library to drive the pin of an IR LED.
cristea 0:741de6c95ae9 16 * Send the frequency of the signal, the length
cristea 0:741de6c95ae9 17 * of the data and the duration of on and off
cristea 0:741de6c95ae9 18 * in ms.
cristea 0:741de6c95ae9 19 */
cristea 0:741de6c95ae9 20
cristea 0:741de6c95ae9 21 class IRSender {
cristea 0:741de6c95ae9 22 private:
cristea 0:741de6c95ae9 23 bool _inUse;
cristea 0:741de6c95ae9 24 PwmOut senderPin;
cristea 0:741de6c95ae9 25 Timer timer;
cristea 0:741de6c95ae9 26
cristea 0:741de6c95ae9 27 public:
cristea 0:741de6c95ae9 28 IRSender(PinName pin) : _inUse(false), senderPin(pin) {}
cristea 0:741de6c95ae9 29 bool irSeq(unsigned freq, unsigned len, const unsigned *data);
cristea 0:741de6c95ae9 30 };
cristea 0:741de6c95ae9 31
cristea 0:741de6c95ae9 32 #endif // __IRSENDER__H__