Infrared remote library for Arduino: send and receive infrared signals with multiple protocols Port from Arduino-IRremote https://github.com/z3t0/Arduino-IRremote

Dependents:   Lilnija_29012017 NucleoF042K6_IRReceiver

Revision:
0:70c8e56bac45
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ir_Dish.cpp	Sat Jan 23 06:16:48 2016 +0000
@@ -0,0 +1,53 @@
+#include "IRremote.h"
+#include "IRremoteInt.h"
+
+//==============================================================================
+//                       DDDD   IIIII   SSSS  H   H
+//                        D  D    I    S      H   H
+//                        D  D    I     SSS   HHHHH
+//                        D  D    I        S  H   H
+//                       DDDD   IIIII  SSSS   H   H
+//==============================================================================
+
+// Sharp and DISH support by Todd Treece ( http://unionbridge.org/design/ircommand )
+//
+// The sned function needs to be repeated 4 times
+//
+// Only send the last for characters of the hex.
+// I.E.  Use 0x1C10 instead of 0x0000000000001C10 as listed in the LIRC file.
+//
+// Here is the LIRC file I found that seems to match the remote codes from the
+// oscilloscope:
+//   DISH NETWORK (echostar 301):
+//   http://lirc.sourceforge.net/remotes/echostar/301_501_3100_5100_58xx_59xx
+
+#define DISH_BITS          16
+#define DISH_HDR_MARK     400
+#define DISH_HDR_SPACE   6100
+#define DISH_BIT_MARK     400
+#define DISH_ONE_SPACE   1700
+#define DISH_ZERO_SPACE  2800
+#define DISH_RPT_SPACE   6200
+
+//+=============================================================================
+#if SEND_DISH
+void  IRsend::sendDISH (unsigned long data,  int nbits)
+{
+	// Set IR carrier frequency
+	enableIROut(56);
+
+	mark(DISH_HDR_MARK);
+	space(DISH_HDR_SPACE);
+
+	for (unsigned long  mask = 1UL << (nbits - 1);  mask;  mask >>= 1) {
+		if (data & mask) {
+			mark(DISH_BIT_MARK);
+			space(DISH_ONE_SPACE);
+		} else {
+			mark(DISH_BIT_MARK);
+			space(DISH_ZERO_SPACE);
+		}
+	}
+}
+#endif
+