enmascaramiento de puertos y puertos en pic

0

Tengo datos en el portb en el microprocesador (pic), necesito comprimir tres bits rb3, rb4 y rb5, los otros pines son varios IO en el puerto b, deseo comprimir la información contenida en esos tres pines en el puerto b, ignorando todos los demás en el puerto b, y preséntelo como dos bits en el puerto A, los pines RA3, RA4.

No sé cómo aplicar máscaras de bits, etc., en este problema, ¿confío en que sea el enfoque correcto?

    
pregunta StevieB

1 respuesta

0

Si desea obtener un byte con RB3, RB4 y RB5 en los 3 bits más bajos (es decir, RB5 es el LSB), haga lo siguiente:

unsigned char uByte = ((RB3 << 2) | (RB4 << 1) | RB5);

Luego haga su compresión, de modo que suponiendo que los dos bits inferiores de uByte necesitan ir a RA3 y RA4 (es decir, RA4 es el LSB), y establezca los bits PORTA de esta manera:

RA3 = ((uByte >> 1) & 0x1);
RA4 = (uByte & 0x1);
    
respondido por el Roger Rowland

Lea otras preguntas en las etiquetas