Autor Tema: Duda rápida con CCS: input()  (Leído 13584 veces)

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

Desconectado excalibur1491

  • PIC10
  • *
  • Mensajes: 44
Duda rápida con CCS: input()
« 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 :):):

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Duda rápida con CCS: input()
« Respuesta #1 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.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Duda rápida con CCS: input()
« Respuesta #2 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


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



Saludos
« Última modificación: 20 de Febrero de 2011, 11:59:38 por KALLITOS »
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: Duda rápida con CCS: input()
« Respuesta #3 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)

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado excalibur1491

  • PIC10
  • *
  • Mensajes: 44
Re: Duda rápida con CCS: input()
« Respuesta #4 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

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Duda rápida con CCS: input()
« Respuesta #5 en: 20 de Febrero de 2011, 12:00:25 »
Corregido  ;-).

saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.