Gitakichi Tokyo / Mbed 2 deprecated IR-remote

Dependencies:   mbed

main.cpp

Committer:
gitakichi
Date:
2020-02-11
Revision:
1:4847c54eed20
Parent:
0:a3131d121a8f
Child:
2:eca0702650ca

File content as of revision 1:4847c54eed20:

//reference from
//https://www.hiramine.com/physicalcomputing/mbed/irreceiver.html

#include "mbed.h"

DigitalIn g_dpinIrReceiver(D2);

Serial g_serial(USBTX, USBRX);

int main()
{
    g_serial.baud(115200);

    Timer timer;
    timer.start();
    //int iMicroSec_prev = timer.read_us();
    int iState_prev = 1;
    int time_start,time_end;
    
    while(1) {
        int iState = g_dpinIrReceiver;
       
        //detect H signal
        if( iState != iState_prev ) {
        //timer start 
            if(iState == 0) {
                //timer.start();//reset
                time_start = timer.read_us();//start(detect negedge
            }
            if(iState == 1) {//end (detect posedge
                time_end = timer.read_us();//over flow?
                //compare and output
                int delta_t = time_end - time_start;
                
                if(delta_t > 8430)    g_serial.printf("flame,");
                else                    g_serial.printf("data,");
                
                //g_serial.printf( "%d, ", time_start - time_end);
            }
        }  
        iState_prev = iState;
           
        //iState_prev = iState;
        //int iMicroSec = timer.read_us();
        //g_serial.printf( "%d, ", iMicroSec - iMicroSec_prev );
        //iMicroSec_prev = iMicroSec;
    }
}