perdón, acabo de ver tu comentario, permiteme de favor al fin de semana para hacerte un ejemplo, lo haría en pic simulator ide, en mikrobasic, o arduino y tú te encargarías de pasarlo al lenguaje que uses.
Tenía el arduino a mano y de una vez lo hice, ya que estos días tengo bastante carga de trabajo y no sé si tenga tiempo libre o no, espero que te sirva esta parte de código, y como te comentaba ya tú te encargarás de pasarlo al lenguaje que estés usando.
if (boton == HIGH && estado==0) // si la variable estado=1 y botón = activado, no se ha liberado el botón por tanto no se cumple la condición, cosa que sí se cumple la primera vez ya que inicias estado = 0
{
estado=1; //variable que controla si se libera o no el botón
digitalWrite(ledPin,HIGH); //enciende un led para saber que está presionado el botón
aux ++; // tu incremento
Serial.println (contador); // mostrado en la computadora
}
if (buttonState == LOW) // cuando el botón se suelta estado es 0 indicando la liberación del botón y
estado=0; // listo para el siguiente incremento
digitalWrite(ledPin,LOW); //apaga el led para indicar que se liberó el botón
y como verás es lo mismo que te comenté en mi intervención anterior, tengo una variable que se llama estado que es la que se encarga de ver cuando se libera el botón; Éste sólo es un ejemplo, ya que hay otras formas de hacerlo, más o menos eficientes pero las hay.
sólo debes de tener cuidado con lo que se conoce como "rebote" o debounce/debousing que siempre tienen los botones por ser elementos mecánicos e incrementará el contador en algunos cuantos puntos pero cuando encuentres un circuito que corrija eso no tendrás problemas de incrementos indebidos, así que a buscar algo para solucionar el debounce; yo lo estoy ejecutando y me incrementa fenomenal y cuando existe el problema del rebote sólo me lo aumenta en 3 o 4 y se detiene (vuelvo a lo mismo, sólo conecté el push sin circuitería anti-rebotes) Saludos y buenas madrugadas.