Autor Tema: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)  (Leído 6397 veces)

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

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« en: 03 de Noviembre de 2010, 08:11:46 »
Buenas tardes a todos de nuevo, he estado viendo por el foro algunos códigos y me surge la siguiente duda:

if (input_state(PIN_B0)==1) significa lo mismo que if (input(PIN_B0)==1)

Gracias de nuevo a todos por la colaboración

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #1 en: 03 de Noviembre de 2010, 08:15:02 »
Ambas instrucciones son casi idénticas, ya que ambas devuelven un 0 o un 1 según esté el pin a nivel bajo o alto respectivamente.

La única diferencia entre input e input_state es que el primero fuerza al pin a comportarse como una entrada si no lo estuviera (TRIS=1) mientras que el segundo sólo lee su estado sin modificar la dirección.

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #2 en: 03 de Noviembre de 2010, 09:46:13 »
Muchas gracias Nocturno por tu respuesta.

Desconectado f-traxx

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #3 en: 03 de Noviembre de 2010, 13:22:53 »
Gracias Nocturno por la explicación ya sabia que servian para lo mismo, pero ahora ya se en que se distinguen, muchas grácias!!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #4 en: 03 de Noviembre de 2010, 13:31:15 »
La única diferencia entre input e input_state es que el primero fuerza al pin a comportarse como una entrada si no lo estuviera (TRIS=1) mientras que el segundo sólo lee su estado sin modificar la dirección.
Y eso sin importar si se declaró fast_io(x)?
.

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #5 en: 03 de Noviembre de 2010, 13:37:59 »
Por lo tanto, ¿siempre es mejor poner  if (input_state(PIN_B0)==1) ?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #6 en: 03 de Noviembre de 2010, 13:49:14 »
La única diferencia entre input e input_state es que el primero fuerza al pin a comportarse como una entrada si no lo estuviera (TRIS=1) mientras que el segundo sólo lee su estado sin modificar la dirección.
Y eso sin importar si se declaró fast_io(x)?

En ese caso las dos instrucciones se comportan igual  ;-) Ninguna configura el tris.

Por lo tanto, ¿siempre es mejor poner  if (input_state(PIN_B0)==1) ?

Todo depende para que lo utilices.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #7 en: 03 de Noviembre de 2010, 13:52:15 »
para mi lo mejor es usar fast_io siempre, o al menos casi siempre.
.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #8 en: 03 de Noviembre de 2010, 13:54:39 »
para mi lo mejor es usar fast_io siempre, o al menos casi siempre.

Es una buena costumbre  :)
No contesto mensajes privados, las consultas en el foro

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: if (input_state(PIN_B0)==1) ó if (input(PIN_B0)==1)
« Respuesta #9 en: 03 de Noviembre de 2010, 13:56:16 »
A mí también me gusta usar fast_io y definir manualmente los TRIS, pero según qué aplicación te vendrá mejor hacerlo de una manera o de otra.
La ventaja es tener disponibles todas las posibilidades y que cada uno use la que más le convenga.


 

anything