TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Aldodc en 09 de Septiembre de 2015, 22:21:37

Título: Como dividir puertos?
Publicado por: Aldodc en 09 de Septiembre de 2015, 22:21:37
Hola estoy comenzandoa programar PIC pero lo ue tengo que sumar dos numeros de 4 bits pero deben estar separados del mismo puerto, es decir, tengo que usar el mismo puerto pero ingresar dos numeros diferentes en los primeros 4 bits un numero y en los otro 4 bits otro numero. Como los separo? estoy programando en C y usando en compilador cx8. gracias de antemano.
Título: Re: Como dividir puertos?
Publicado por: KILLERJC en 09 de Septiembre de 2015, 23:02:51
Código: C
  1. short int valor1,valor2
  2.  
  3. valor1 = PORTx;
  4. valor2 = valor1 & 0xF; // es lo mismo que PORTx  AND 0000 1111, es decir dejo los 4 bits de menos peso
  5. valor1 = ((valor1 & 0xF0)>>4); // es lo mismo que ( PORTx AND 1111 0000) dejo los 4 bits de mayor peso y luego roto 4 veces a la derecha, asi quedan en la parte baja

Esto es para leer 1 ves el puerto, ahora si te aseguras que el valor del puerto no va a cambiar rapidamente entonces con esto basta:

Código: C
  1. valor1 = ((PORTx & 0xF0)>>4);
  2. valor2 = PORTx & 0x0F;

donde PORTx puede ser PORTB, PORTA, etc