TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Thulsa Doom en 19 de Noviembre de 2011, 19:39:06

Título: ¿como generar un pulsador con enclavamiento?
Publicado por: Thulsa Doom en 19 de Noviembre de 2011, 19:39:06
Hola a todos, pues tengo un código donde transformo un pulsador normal en uno con enclavamiento pero no estoy contento con el, ya que si dejas pulsado el pulsador este regresa al estado inicial y me gustaría que si lo pulso cambie el estado pero que si sigo pulsándolo sin soltarlo no haga nada y por más que maquino y exprimo mi cerebro no doy con la solución a ver si alguno de ustedes me puede recomendar o orientar para mejora el código o otro código que sea mejor, bueno ya sabéis.  :)

el código que tengo es este:

Código: [Seleccionar]
void pulsador (void){   //Rutina para transformar un pulsador en un pulsador con enclavamiento

    int limite=2;



    if(input(PIN_B3)==0){   //Si accionamos el pulsador

    delay_ms(50); swicht++;           //Un retraso para evitar rebotes del pulsador y

                                     //Se incrementa la variable swicht   

    }

    else if(swicht > (limite-1)){   //Si la variable swicht es mayor que límite -1

    swicht = 0;                // se pone la variable swicht a 0

    }

     

   }
Título: Re: ¿como generar un pulsador con enclavamiento?
Publicado por: tannke en 19 de Noviembre de 2011, 19:49:16
prueba con:
Código: [Seleccionar]
void pulsador (void)          //Rutina para transformar un pulsador en un pulsador con enclavamiento
{   
    if(input(PIN_B3)==0)
    {
        delay_ms(50);
        swicht = ~swicht;
        while(input(PIN_B3)==0);
     }
}

Saludos.
Título: Re: ¿como generar un pulsador con enclavamiento?
Publicado por: Thulsa Doom en 20 de Noviembre de 2011, 09:42:18
Hola, pues ese código tal y como está no me funciona, al igual lo estoy poniendo mal