Nobuki HIRAMINE
/
irreceiver2
IR Receiver
main.cpp@0:d8a26e89c7f3, 2015-08-12 (annotated)
- Committer:
- nobuki
- Date:
- Wed Aug 12 17:23:22 2015 +0000
- Revision:
- 0:d8a26e89c7f3
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nobuki | 0:d8a26e89c7f3 | 1 | #include "mbed.h" |
nobuki | 0:d8a26e89c7f3 | 2 | |
nobuki | 0:d8a26e89c7f3 | 3 | DigitalIn g_digitalinIrReceiver(p20); |
nobuki | 0:d8a26e89c7f3 | 4 | Serial g_serial(USBTX, USBRX); |
nobuki | 0:d8a26e89c7f3 | 5 | |
nobuki | 0:d8a26e89c7f3 | 6 | int main() |
nobuki | 0:d8a26e89c7f3 | 7 | { |
nobuki | 0:d8a26e89c7f3 | 8 | // デジタル入力ピンは、デフォルトで、内部プルダウンとなります(参考:https://developer.mbed.org/handbook/DigitalIn) |
nobuki | 0:d8a26e89c7f3 | 9 | // 内部プルダウンの場合、IRセンサーからのHIGH電圧をLOW電圧と検知してしまうので、内部プルモードを「プルなし(PullNone)」にします。 |
nobuki | 0:d8a26e89c7f3 | 10 | g_digitalinIrReceiver.mode( PullNone ); // mode : PullUp, PullDown, PullNone, OpenDrain |
nobuki | 0:d8a26e89c7f3 | 11 | g_serial.baud(115200); |
nobuki | 0:d8a26e89c7f3 | 12 | |
nobuki | 0:d8a26e89c7f3 | 13 | Timer timer; |
nobuki | 0:d8a26e89c7f3 | 14 | timer.start(); |
nobuki | 0:d8a26e89c7f3 | 15 | int iMicroSec_prev = timer.read_us(); |
nobuki | 0:d8a26e89c7f3 | 16 | int iState_prev = 1; |
nobuki | 0:d8a26e89c7f3 | 17 | while(1) |
nobuki | 0:d8a26e89c7f3 | 18 | { |
nobuki | 0:d8a26e89c7f3 | 19 | int iState = g_digitalinIrReceiver; |
nobuki | 0:d8a26e89c7f3 | 20 | if( iState != iState_prev ) |
nobuki | 0:d8a26e89c7f3 | 21 | { |
nobuki | 0:d8a26e89c7f3 | 22 | iState_prev = iState; |
nobuki | 0:d8a26e89c7f3 | 23 | int iMicroSec = timer.read_us(); |
nobuki | 0:d8a26e89c7f3 | 24 | g_serial.printf( "%d, ", iMicroSec - iMicroSec_prev ); |
nobuki | 0:d8a26e89c7f3 | 25 | iMicroSec_prev = iMicroSec; |
nobuki | 0:d8a26e89c7f3 | 26 | } |
nobuki | 0:d8a26e89c7f3 | 27 | } |
nobuki | 0:d8a26e89c7f3 | 28 | } |