TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: japifer_22 en 25 de Agosto de 2011, 09:46:51
-
hola gente. queria ver si me pueden desir que hace esta linea por favor:
int8 byte;
int32 maddres;
byte=(0xa0 | ((make8(maddress,2))<<1));
se que | es una or de bit, tambien que << es un desplazamiento a la izquierda y make8 es una rotación de bit
pero en general no entiendo bien que hace :oops:
-
Seguramente es el byte de control para acceder de una memoria eeprom o algún dispositivo. 0xA0 es fijo, el tercer byte (no es segundo!) de maddress contiene la dirección particular del dispositivo i2c. Lo rota 1 a le izquierda porque el primer bit es para indicar si se necesita realizar una escritura o lectura sobre el dispositivo.
De esa manera, el tercer byte de maddres tiene que tener un valor como es siguiente: 0b00000xxx. Entonces al hacer la operación mostrada queda:
byte=0b1010xxx0
Saludos!