IR receiver for TG-LPC11U35-501

Dependencies:   AQM0802 IR mbed

Revision:
2:31c91b18bba9
Parent:
0:8ae7470a57ef
Child:
3:7ecc01d39b46
diff -r 357602966b21 -r 31c91b18bba9 main.cpp
--- a/main.cpp	Thu Jun 26 13:58:50 2014 +0000
+++ b/main.cpp	Fri Sep 25 17:13:57 2015 +0000
@@ -5,7 +5,7 @@
 // LPC11U35 flash=64KB, ADC=10bits
 // Nucleo F401RE flash=512KB, ADC=12bits
 //
-// (C)Copyright 2014 All rights reserved by Y.Onodera
+// (C)Copyright 2014-2015 All rights reserved by Y.Onodera
 // http://einstlab.web.fc2.com
 //**********************
 #include "mbed.h"
@@ -14,9 +14,9 @@
 
 //#pragma O0
 //#pragma O1
-//#pragma O2    // default
-//#pragma O3
-//#pragma Otime
+//#pragma O2
+//#pragma O3    // default
+//#pragma Otime // default
 //#pragma Ospace
 
 
@@ -41,26 +41,27 @@
 #endif
 
 AQM0802 lcd(i2c);
-IR ir(P0_12);
+IR ir(P0_12,P0_13);
 InterruptIn button(P0_12);
 
-void flip()
+void irInterrupt()
 {
     led1=!led1;
-    button.disable_irq();
-    ir.GetIR();
+    button.disable_irq();   // !!! not work !!!
+    ir.getIR();
     button.enable_irq();
     
     // To do something, code here
     
 }
 
+
 int main() {
     
     char msg[10];
     char i;
     
-    button.fall(&flip);
+    button.fall(&irInterrupt);
     button.mode(PullUp);
     
     sprintf(msg, "%d", SystemCoreClock );
@@ -73,20 +74,37 @@
         lcd.locate(0,0);
         sprintf(msg,"%02X",ir.bits);    // bits
         lcd.print(msg);
-        sprintf(msg,"%02X",ir.mode);    // 1:NEC, 2:STD
+        sprintf(msg,"%02X",ir.mode);    // 1:NEC, 2:AEHA, 3:SONY
         lcd.print(msg);
 
         for(i=0;i<2;i++){
+//        for(i=5;i<7;i++){
             sprintf(msg,"%02X",ir.buf[i]);  // data
             lcd.print(msg);    
         }
 
         lcd.locate(0,1);
         for(i=2;i<6;i++){
+//        for(i=11;i<15;i++){
             sprintf(msg,"%02X",ir.buf[i]);  // data
             lcd.print(msg);    
         }
         wait(1);
+        
+
+        // Echo back
+        button.fall(NULL);          // disable Interrupt
+        // set parameter to send out
+        // ir.mode is 1:NEC, 2:AEHA or 3:SONY
+        // ir.bits is number to send out less than IR_LIMITS x8
+        // ir.buf[] are bytes buffer
+        ir.setIR();
+        button.fall(&irInterrupt);  // enable Interrupt
+        wait(1);
+        
+        
     }
 
 }
+
+