Autor Tema: Asignar botones a variables.  (Leído 3719 veces)

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

Desconectado juanez

  • PIC12
  • **
  • Mensajes: 90
Asignar botones a variables.
« en: 03 de Mayo de 2008, 15:28:40 »
Hola, ¿Como se asigna un boton a una variable?, he probado lo siguiente y el ccs lo compila bien. pero parece que no funciona.

#define x pin_D0
#define y pin_D1

Lo que quiero es asignar por ejemplo la patilla D0 a la variable x, y en el programa en vez de comparar la patilla D0 comparar la variable x.

Saludos

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Asignar botones a variables.
« Respuesta #1 en: 03 de Mayo de 2008, 15:49:17 »
Hola.

Esta es una forma: x=input(pin_d0)

Un saludo

Desconectado juanez

  • PIC12
  • **
  • Mensajes: 90
Re: Asignar botones a variables.
« Respuesta #2 en: 03 de Mayo de 2008, 18:59:38 »
Hola, no me as entendido.

Lo que quiero hacer es que la variable x siempre tenga el valor de la patilla D0, sin tener que estar comparandola todo el rato.

En PBP se hace asi : x var portD.0

Desconectado Gonzalo_BlackHawk

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 519
Re: Asignar botones a variables.
« Respuesta #3 en: 03 de Mayo de 2008, 20:05:53 »
Hola, utiliza la instrucción del preprocesador #bit. Supongamos que quieres que la variable X tenga el valor del pin 5 Del puerto D:

#byte Puerto_D = 0x08
#bit X = Puerto_D.5

El numero 0x08 depende del registro asignado al puerto en cuestión, asi que puedes evitar la instrucción #byte y colocar directamente la dirección en memoria del puerto en la instrucción #bit.

Saludos.
"Siempre piensa si el jugo vale la exprimida..."

"La muerte esta tan segura de vencer que nos da toda una vida de ventaja."

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Asignar botones a variables.
« Respuesta #4 en: 04 de Mayo de 2008, 01:46:21 »
Vale ahora te has explicado mejor.

Una forma es como te dice Gonzalo y otra es como lo tienes tú: ¡ con el #define pin_x! ... que sí debiera de funcionar.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Asignar botones a variables.
« Respuesta #5 en: 04 de Mayo de 2008, 03:07:52 »
Saludos juanez!
Yo siempre uso para definir pines la forma que tienes tú:
#define nombre_que_quiero PIN_XX
y me funciona de lo lindo!  :-/
En qué aspecto dices que no te funciona? Porque si lo compila bien... debería funcionar no?  :?
Bueno luego nos comentarás...
Nos leemos!   :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado juanez

  • PIC12
  • **
  • Mensajes: 90
Re: Asignar botones a variables.
« Respuesta #6 en: 04 de Mayo de 2008, 07:02:41 »
Hola de nuevo, he estado haciendo pruebas y lo del define si que funciona.

#define x pin_D0

Lo que ocurre es que esto funciona para poner a estado alto o bajo x por ejemplo con:

output_high(x);
output_low(x);

Asi funciona perfectamente.

Pero lo que yo quiero y no me funciona, es que el pin_D0 por poner un ejemplo por que podria ser cualquier otro pin.
Tengo conectado en proteus un pulsador al pin D0, y lo que quiero es que x siempre tenga el valor de este pulsador para poder compararlo en cualquier momento.

Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Asignar botones a variables.
« Respuesta #7 en: 04 de Mayo de 2008, 08:17:32 »
Puedes hacerlo así: input(x)

Siendo x el pin que has definido antes.

Ese método sólo te valdrán en CCS. Si quieres, puedes definir el puerto que vas a utilizar como un byte, y cada pin como un bit, y entonces sí conseguirás el mismo resultado pero válido para cualquier compilador.

Desconectado juanez

  • PIC12
  • **
  • Mensajes: 90
Re: Asignar botones a variables.
« Respuesta #8 en: 04 de Mayo de 2008, 16:08:11 »
weno ya lo tengo un poco mas claro, gracias a todos.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: Asignar botones a variables.
« Respuesta #9 en: 04 de Mayo de 2008, 23:18:51 »
Saludos!  :-)

Hola de nuevo, he estado haciendo pruebas y lo del define si que funciona.

#define x pin_D0

Lo que ocurre es que esto funciona para poner a estado alto o bajo x por ejemplo con:

output_high(x);
output_low(x);

Asi funciona perfectamente.

Pero lo que yo quiero y no me funciona, es que el pin_D0 por poner un ejemplo por que podria ser cualquier otro pin.
Tengo conectado en proteus un pulsador al pin D0, y lo que quiero es que x siempre tenga el valor de este pulsador para poder compararlo en cualquier momento.

Saludos

Amigo juanez, si colocas #define x PIN_D0, esto no solo funciona para asignar valores, también funciona para hacer lo que tú quieres.  :)
Verás, cuando se aplica esa sentencia, lo que estamos diciendole al compilador es que cada vez que el vea "x" en el programa, entienda que nos estamos refiriendo al pin declarado en el #define. Asi que en realidad "x" no existe, solo existe PIN_D0... el "x" es una simple ayuda visual al programador... pues si revisas el archivo .LST, donde se ve el código ASM generado por el compilador por cada instrucción de C, observarás que en las líneas donde escribiste "x" aparecerá "08.0", que es la dirección en el pic de esa pin en particular (RD0).
De manera que si tu quieres hacer por ejemplo "if(x==0)"... o cualquier otra comparación en cualquier momento, puedes estar seguro que lo que estarás diciendo es "if(PIN_D0==0)" o lo que hayas puesto. Es decir, en tu caso particular, "x" siempre tendrá el valor del pulsador, pues en realidad "x" es tu pulsador.

Espero haberme explicado bien, y haberte servido de algo.
Sigue probando y luego cuentas si pudiste resolver...
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web


 

anything