Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: elselex en 27 de Junio de 2018, 21:04:45
Título: leer dos datos binarios del puerto A PIC 18F4550
Publicado por: elselex en 27 de Junio de 2018, 21:04:45
Hola compañeros,
Soy principiante en el mundo de los microcontroladores, tal vez mis preguntas os parezcan muy básicas pero estoy haciendo mis primeros "pinitos" y tengo una duda que por mucho que navego e intento resolverla viendo tutoriales o documentandome no encuentro nada relacionado que pueda resolverla. El tema es que quiero hacer operaciones en sistema binario pero usando dos datos y que la entrada sea por el puerto A, por ejemplo, con dos datos de tres bits cada uno y que el dato 1 entre por los pines RA0,RA1 y RA2 y el dato 2 entre por los pines RA3,RA4 y RA5. ¿sabeis como podría hacerlo? por mucho que leo no encuentro nada al respecto.
Título: Re:leer dos datos binarios del puerto A PIC 18F4550
Publicado por: KILLERJC en 27 de Junio de 2018, 22:58:46
Depende del compilador que estes usando. Voy a usar XC8
Por ejemplo si quisieras solo tener los primeros 3 bits, ( RA0 a RA2 ) podrias hacer:
Código: C
primerDato = PORTA &0b111;
Hacerle una AND te va a permitir dejar unicamente el estado de esos tres bits.. en el caso de RA3 a RA5:
Código: C
segundoDato = PORTA &0b111000;
El problema que tus bits van a quedar en la posicion esa.. deberias tambien desplazarlo a la derecha. Quedandote asi:
Código: C
segundoDato =(PORTA &0b111000)>>3;
Es decir rotamos a la derecha 3 veces, corriendo los bits que dejamos con la AND al lugar de los primeros bits. Y ahora si podes "operar" junto al otro. Por ejemplo sumarlos: