TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: excalibur1491 en 19 de Febrero de 2011, 18:27:04

Título: Duda rápida con CCS: input()
Publicado por: excalibur1491 en 19 de Febrero de 2011, 18:27:04
Hola,
he seguido con mi proyecto y ahora esta totalemnte acabado (a nivel de simulación), sólo me falta construirlo....
pero tengo una curiosidad:
porque para leer si el interruptor conectado al PIN_A0 (por ejemplo) ha sido pulsado hago:
if (!(input(PIN_A0))
{
..
}

justamente et bit 0 des puerto A ha de valer 1 si ha sido pulsado, no?? en ese caso porué hay que pone ! ??
para mi es más logico no poner el !.....

alguna explicacion??
gracias :):):
Título: Re: Duda rápida con CCS: input()
Publicado por: migsantiago en 19 de Febrero de 2011, 18:40:05
El ! es una negación.

El código lo copiaste de alguien que usó lógica inversa.
Título: Re: Duda rápida con CCS: input()
Publicado por: KALLITOS en 19 de Febrero de 2011, 19:22:01
Hola, en esta web http://www.seattlerobotics.org/encoder/mar97/basics.html, se detalla la teoria.

Segun este diagrama en la entrada del pic siempre tendras un "1" y cuando se presione la tecla el nivel va a "0".
En este caso se usa if(!input(PIN_A0))
A esto se le llama PULLUP
(http://www.seattlerobotics.org/encoder/mar97/basics1.gif)

Y en este diagrama en la entrada del pic siempre tendras un "0" y cuando se presione la tecla el nivel va a "1".
En este caso se usa if(input(PIN_A0))
A esto se le llama PULLDOWN
(http://www.seattlerobotics.org/encoder/mar97/basics4.gif)


Saludos
Título: Re: Duda rápida con CCS: input()
Publicado por: PalitroqueZ en 19 de Febrero de 2011, 23:45:51
if (!input(PIN_A0)) =  if(input(PIN_A0)==0)

if (input(PIN_A0)) = if (input(PIN_A0)==1)

Título: Re: Duda rápida con CCS: input()
Publicado por: excalibur1491 en 20 de Febrero de 2011, 05:25:14
Gracias a migssantiago y a Palitroquez, pero sé escribir en C, ya sabia lo que hacia al poner ! xDD lo que no sabia es porqué electricamente habia que ponerlo.

Muchas gracias a KALLITOS!! Ahora si que lo he entendido, (y gracias por el enlace)...
pero creo que te has equivocado en tu segundo ejemplo: para pulldown es input(PIN_A0) sin el ! , no?


mil gracias a todos
Título: Re: Duda rápida con CCS: input()
Publicado por: KALLITOS en 20 de Febrero de 2011, 12:00:25
Corregido  ;-).

saludos