lectura de botones en C =>LPC2148

Hola muy buenas , estoy programando en C un ARM LPC2148 y tengo una botonera de pulsadores, quisiera saber como escribir el codigo necesario para que lea una pulsación y solo una cuando haya pulsado cada vez, ya que si pongo esto:

if ((FIO0PIN & (1<<6))== 0);
angulo++;


se incrementa muchisimo ya que lee miles de veces el botón. No se puede usar retardor con bucles ya que me afecta a la onda PWM que genero después. Muchas gracias.
 
Lo que te esta pasando ahi es que tenes rebotes, deberias introducir un circuito antirrebote o un codigo que sirva como antirrebote.

Circuito -> usar un filtro pasa bajos Rc.

Codigo -> al tomar la 1era pulsacion, esperar entre 1mSeg y 2, verificar que el estado sea el mismo (pulsado) y recien confirmar que se pulso un boton.
 
Atrás
Arriba