赤外線リモコンのパルス幅を表示します
Dependencies: mbed IRRcevPulseWidth
Fork of irreceiver by
Revision 2:65739f894d3b, committed 2016-12-25
- Comitter:
- nameless129
- Date:
- Sun Dec 25 03:04:21 2016 +0000
- Parent:
- 1:cc9fd4010a3d
- Child:
- 3:ba3fe24e6306
- Commit message:
- ?????????UART?????????;
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun May 15 15:52:48 2016 +0000 +++ b/main.cpp Sun Dec 25 03:04:21 2016 +0000 @@ -1,35 +1,52 @@ #include "mbed.h" +#include <string.h> -DigitalIn g_dpinIrReceiver(p20); +#define IR_RCEV_MAX_IR_RECEV_NUM (400) +#define IR_RCEV_TIMEOUT_US (100000) + +DigitalIn g_dpinIrReceiver(D12); Serial g_serial(USBTX, USBRX); int main() { - g_serial.baud(115200); + g_serial.baud(9600); 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(); - int iMicroSec_prev = timer.read_us(); - int iState,iState_prev = 1; - int iMicroSec,iMicroSec_diff; + IRRcevMicroSec_prev = timer.read_us(); while(1) { - iState = g_dpinIrReceiver; - if( iState != iState_prev ) + IRRcevMicroSec = timer.read_us(); + IRRcevMicroSec_diff = IRRcevMicroSec - IRRcevMicroSec_prev; + + IRRcevState = g_dpinIrReceiver; + if( IRRcevState != IRRcevState_prev ) { - iState_prev = iState; - iMicroSec = timer.read_us(); - iMicroSec_diff = iMicroSec - iMicroSec_prev; - if(iMicroSec_diff >= 1000000) + 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\n\r\n"); + g_serial.printf("%d,",IR_RcevData[i]); } - else - { - g_serial.printf( "%d, ", iMicroSec_diff ); - } - iMicroSec_prev = iMicroSec; + g_serial.printf("\r\n"); + cIRRcev = 0; + memset(IR_RcevData,0,sizeof(IR_RcevData)); } } }
--- a/mbed.bld Sun May 15 15:52:48 2016 +0000 +++ b/mbed.bld Sun Dec 25 03:04:21 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/7c328cabac7e \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/9baf128c2fab \ No newline at end of file