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