赤外線リモコンのパルス幅を表示します

Dependencies:   mbed IRRcevPulseWidth

Fork of irreceiver by Nobuki HIRAMINE

Revision:
3:ba3fe24e6306
Parent:
2:65739f894d3b
Child:
5:6cd0d9c1a0a3
--- a/main.cpp	Sun Dec 25 03:04:21 2016 +0000
+++ b/main.cpp	Sun Dec 25 08:55:02 2016 +0000
@@ -1,52 +1,35 @@
 #include "mbed.h"
-#include <string.h>
+#include "IRRcevPulseWidth.h"
 
-#define IR_RCEV_MAX_IR_RECEV_NUM    (400)
+#define IR_RCEV_MAX_IR_RECEV_NUM    (300)
 #define IR_RCEV_TIMEOUT_US          (100000)
 
-DigitalIn g_dpinIrReceiver(D12);
 Serial g_serial(USBTX, USBRX);
+IRRcevPulseWidth IRrcev(D12);
 
 int main()
 {
-    g_serial.baud(9600);
+    uint16_t IR_RcevData[IR_RCEV_MAX_IR_RECEV_NUM];
+    uint16_t i;
+    int8_t ret;
 
-    Timer timer;
-    uint32_t IRRcevMicroSec_prev;
-    uint32_t IRRcevMicroSec,IRRcevMicroSec_diff;
-    uint8_t  IRRcevState,IRRcevState_prev = 1;
-    uint16_t IR_RcevData[IR_RCEV_MAX_IR_RECEV_NUM];
-    uint16_t cIRRcev=0;
-    uint16_t i=0;
-
-    memset(IR_RcevData,0,sizeof(IR_RcevData));
-    timer.start();
-    IRRcevMicroSec_prev = timer.read_us();
+    IRrcev.init(IR_RcevData,IR_RCEV_MAX_IR_RECEV_NUM,IR_RCEV_TIMEOUT_US);
 
     while(1)
     {
-        IRRcevMicroSec = timer.read_us();
-        IRRcevMicroSec_diff = IRRcevMicroSec - IRRcevMicroSec_prev;
-
-        IRRcevState = g_dpinIrReceiver;
-        if( IRRcevState != IRRcevState_prev )
+        ret = IRrcev.status();
+        if(ret == 1)
         {
-            IRRcevState_prev = IRRcevState;
-            IR_RcevData[cIRRcev] = IRRcevMicroSec_diff;
-            cIRRcev++;
-            IRRcevMicroSec_prev = IRRcevMicroSec;
-        }
-        else if( (IRRcevMicroSec_diff >= IR_RCEV_TIMEOUT_US) && (cIRRcev != 0) )
-        {
-            g_serial.printf("Rceved\r\n");
-            g_serial.printf("RcevCnt:%d\r\n",cIRRcev);
-            for(i=1;i<cIRRcev;i++)
+            g_serial.printf("\r\nproc succes:%d\r\nDUMP\r\n",IRrcev.getData_N());
+            for(i=0;i<IRrcev.getData_N();i++)
             {
                 g_serial.printf("%d,",IR_RcevData[i]);
             }
-            g_serial.printf("\r\n");
-            cIRRcev = 0;
-            memset(IR_RcevData,0,sizeof(IR_RcevData));
+        }
+        else if(ret == -1)
+        {
+            g_serial.printf("\r\nCount Over!\r\n");
         }
     }
+
 }