A ver, creo entender que tienes que contar los dientes mientras que otro pin esté en "alto".
Bueno, sea así o que solamente tienes que contar los dientes:
Tienes que usar una variable que se ponga a "1" cuando ya has contado el diente (y no contar hasta que esté otra vez en "0") y que se ponga a "0" cuando no haya diente; de esta forma se cuenta el diente una sola vez.
Esta variable la tienes que actualizar (1 - 0 -1 - 0, ...) tanto cuentas como si no. Si no quieres contar si hay otra condición un "if" y a correr.
No puedes estar al albur de lo que dure el loop (que, ciertamente, dura poquísimo para tus necesidades -estás hablando de poco más de un diente al segundo y el (tu) loop durará microsegundos).
Saludos.
Moderador: No repitas lo que se lee arriba