IR remoute control multiple click button

Dependents:   Exam_TK Exam_TK

UserButton.h

Committer:
docent
Date:
2019-07-12
Revision:
0:94d6bf511846
Child:
1:d5f5481d7eaf
Child:
2:7a268df54696

File content as of revision 0:94d6bf511846:

InterruptIn mybutton(USER_BUTTON);

Timeout FrameTimeout;
Timeout BounceTimeout;

uint8_t Debounce=0;
uint8_t cnt=0,*pind_cnt;
uint8_t *pmode=0;

 
//------------------
void FrameTimeout_isr()
{
    *pmode=cnt;
    cnt=0;                   
}

//---------------------
void BounceTimeout_isr()
{
  Debounce=0;
  
}    
 
//------------
void pressed()
{
     if(Debounce==0){
        Debounce=1;
        cnt++;
        *pind_cnt=cnt;
        FrameTimeout.detach();
        FrameTimeout.attach(FrameTimeout_isr,1.0);          
        BounceTimeout.attach(BounceTimeout_isr,0.2);
    }
}

//-----------------------------------
void ButtonIni(uint8_t *pind,uint8_t *pm)
{
 pmode=pm;
 pind_cnt=pind;
 mybutton.fall(&pressed);
 }