TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: LuisGonzalez17 en 02 de Agosto de 2020, 15:17:46

Título: "&" en PIC C
Publicado por: LuisGonzalez17 en 02 de Agosto de 2020, 15:17:46
Buenas tardes,

Estoy realizando un proyecto y utilizo un encoder para el manejo del Manú en el LCD. He buscado ejemplos del manejo del encoder con PIC y me encontré con un ejemplo muy bueno... mas o menos le entiendo a la mayoría del código pero me topé con una linea que no entiendo exactamente lo que hace:

     .
     .
     .
int8 binario;
int8 entrada;
set_tris_a(0b11111);

while(true)
{
     binario = entrada;
     entrada = porta & 3;      <---- Esta es la linea que no entiendo, no se que es lo que hace la "&"
     .
     .
     .
}

Espero que me puedan ayudar, muchas gracias por leer y disculpen las molestias.
Título: Re:"&" en PIC C
Publicado por: KILLERJC en 02 de Agosto de 2020, 15:34:56
es una AND binaria... es decir hace una AND con el valor 3 decimal o 11b binario.


Eso lo hace para solo dejar los valores que le interesan. ejemplo Supongamos que PORTA sea 1101 1001 luego del AND:

1101 1001  - PORTA
0000 0011  - 3 en binario
------------------
0000 0001  Solo deja pasar lo que tengan los unos... lo demas es 0
Título: Re:"&" en PIC C
Publicado por: Robert76 en 02 de Agosto de 2020, 19:13:07
Añadiendo al comentario de KILLER.
El carácter &(ampersand) es un operador de bits.
Al hacer una operación lógica entre dos números binarios A y B, también se le conoce cómo hacer máscara a A.