Autor Tema: Problema pulsador  (Leído 2066 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado triplegota

  • PIC10
  • *
  • Mensajes: 14
Problema pulsador
« en: 01 de Abril de 2006, 08:45:00 »
Hola,.. me encuentro haciendo un proyecto,. y necesito que cuando pulse un pulsador, una variable incremente su valor pero solamente en una unidad,.. y no siga incrementando aunque continuen los ciclos de programa. He empleado retardos pero me dan problemas.,.. no se si alguien tiene alguna idea para hacer esto. Muchas gracias y un saludo desde Gales

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Problema pulsador
« Respuesta #1 en: 01 de Abril de 2006, 09:05:00 »
Buenass!!!no quiero ser pesado en ponerte el enlace al post de Ejemplitos en C para 16F648A jeje pero hay programas que s etrabaja con pulsadores, hay dos maneras de evitar los llamados "rebotes" , uno es mediante hardware y la otra mediante software, en este caso lo realice mediante software, con un retraso es una posibilidad y la otra es mediante un bucle:
Codigo:

  do{ //elimina...
}while(!input(PIN_A0)); //...rebotes del boton


Donde en PIN_A0 debes colocar el pin tuyo donde esta conectado el boton!


Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Problema pulsador
« Respuesta #2 en: 01 de Abril de 2006, 16:57:00 »
Escrito originalmente por triplegota
Hola,.. me encuentro haciendo un proyecto,. y necesito que cuando pulse un pulsador, una variable incremente su valor pero solamente en una unidad,.. y no siga incrementando aunque continuen los ciclos de programa. He empleado retardos pero me dan problemas.,.. no se si alguien tiene alguna idea para hacer esto. Muchas gracias y un saludo desde Gales


Depende que quieres hacer.

Si el bucle de tu programa pasa muchas veces por dicha rutina y el incremento se debe dar cuando se pulsa pero no seguirse incrementando mientras sigue pulsado.... usa la rutina de vszener.

Eso si, nota que solo ejecutaras lo qeu está dentro del while y lo que ocurra con alguna interrupción

Si lo que quieres es leer uuna sola vez el pin y nunca mas... te aconsejo que uses una variable

La variable se inicia en 0.  Al leer el pin se pone en 1 y se incrementa el contador.

Luego nunca mas incrementas el contador si la variable está en 1!

Todo depende que quieras hacer exactamente en tu softwre, como no lo has aclarado es que te pongo esos ejemplos que se me acaban de ocurrir.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything