Gitakichi Tokyo / Mbed 2 deprecated IR-remote

Dependencies:   mbed

main.cpp

Committer:
gitakichi
Date:
2020-02-11
Revision:
2:eca0702650ca
Parent:
1:4847c54eed20
Child:
3:31c005437fa5

File content as of revision 2:eca0702650ca:

//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,time_data,delta_t;
    int data_en = 0;

    while(1) {
        int iState = g_dpinIrReceiver;

        //detect H signal
        if( iState != iState_prev ) {
            if(iState == 0) {
                //timer.start();//reset
                time_start = timer.read_us();//start(detect negedge

                if(data_en == 1) {
                    //time_data = timer.read_us();
                    //delta_t = time_data - time_end;
                    delta_t = time_start - time_end;
                    data_en = 0;
                    if(delta_t > 1523)    g_serial.printf("H");//625*2.5
                    else                  g_serial.printf("L");
                }
            } else if(iState == 1) { //end (detect posedge


                time_end = timer.read_us();//over flow?
                //compare and output
                delta_t = time_end - time_start;

                if(delta_t > 8430)    g_serial.printf("flame,");//625*15
                else {
                    data_en = 1;
                    //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;
    }
}