martes, 12 de febrero de 2019

Tecnicas antirebote en Botones

Tecnicas antirebote en Botones

esta Tecnica sirve para cualquier tipo de boton siempre y cuando uses la tecnica de poleo ( es decir que preguntes si se presiono)

esta tecnica de antirebote consiste de una simple bandera en el programa:



if (Boton es presionado && Variable ==0){

   Variable =1;

  ejecuta todo el codigo de boton presionado


}else if (Boton NO es presionado )
   {Variable ==0;}

ejemplo codigo CCS PIC
#bit Flag_CH0 = bandera.0

//--------------------------------------------- ejemplo touchcapacitivo
 if ( Is_touch() && !Flag_ch0 ){
     printf("tecla presionada \n\r");
     Flag_ch0=1;
   }else if (!Is_touch()){Flag_ch0=0;}

//-------------------------------------- ejemplo boton a tierra
 if ( !Input(Pin_B0) && !Flag_ch0 ){
     printf("tecla presionada \n\r");
     Flag_ch0=1;
   }else if (Input(Pin_B0)){Flag_ch0=1;}


void main(){
  Flag_CH0 =0; 
}


Nota la vaariable se debe inicializar en 0 inicialmente.

este codigo hace que el micro responda rapido y sin que entre en las rutinas boton presionado aunque se deje presionado el  boton, touch, o boton analogo. etc.

No hay comentarios.:

Publicar un comentario