Autor Tema: leer dos datos binarios del puerto A PIC 18F4550  (Leído 1542 veces)

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

Desconectado elselex

  • PIC10
  • *
  • Mensajes: 2
leer dos datos binarios del puerto A PIC 18F4550
« 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.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:leer dos datos binarios del puerto A PIC 18F4550
« Respuesta #1 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
  1. 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
  1. 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
  1. 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:

Código: C
  1. resultado = primerDato + segundoDato;


 

anything