TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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 :):):
-
El ! es una negación.
El código lo copiaste de alguien que usó lógica inversa.
-
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
-
if (!input(PIN_A0)) = if(input(PIN_A0)==0)
if (input(PIN_A0)) = if (input(PIN_A0)==1)
-
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
-
Corregido ;-).
saludos