Autor Tema: Fusión de registros (2 en 1)  (Leído 2460 veces)

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

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
Fusión de registros (2 en 1)
« en: 22 de Octubre de 2004, 10:47:00 »

   Hola a todos. Tengo una medida separada o dispuesta en dos registros. Bueno, perdón, 2 variables int de 8 bits cada una. Lo que quiero es meter la parte alta y baja del byte de la medida (las 2 variables int) en una variable de tipo long int. Se hace con el comando shift_right(dirección,bytes,0 ó 1). El caso es que dirección es un puntero a memoria. Qué dirección de memoria??  Bytes supongo que será 8.

   Tengo que reservar previamente 16 bits de memoria y 8 antes y después de estos 16 y luego utilizar el comando shift?? Estoy un poco perdido, la verdad. No termino de tener claro cómo se hace.  Helado
   
    Gracias de antemano.
  Un saludo.
                     

Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Fusión de registros (2 en 1)
« Respuesta #1 en: 22 de Octubre de 2004, 17:40:00 »
es mas sencillo que eso:

make16(variable1,variable2);

Idea

saludos

Desconectado JacoPastorius2004

  • PIC10
  • *
  • Mensajes: 42
RE: Fusión de registros (2 en 1)
« Respuesta #2 en: 22 de Octubre de 2004, 17:47:00 »
que tal!

fijate con algo como esto:

long int reg_largo;
int reg_corto_A;
int reg_corto_B;
.......

reg_corto_A = 103;
reg_corto_B = 23;

reg_largo = (long)reg_cortoA;    // operador cast para convertir a long reg_cortoA
reg_largo <<= 8;             // roto a la izquierda 8 lugares para que no se solapen luego con reg_cortoB

reg_largo += (long)reg_cortoB;  // los sumo

Saludos
Jaco


Desconectado pacalaconcurso

  • PIC24F
  • *****
  • Mensajes: 718
RE: Fusión de registros (2 en 1)
« Respuesta #3 en: 22 de Octubre de 2004, 18:43:00 »
efectivamente es lo mismo pero escribiendo mas códigoSonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa Gigante

saludos

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Fusión de registros (2 en 1)
« Respuesta #4 en: 23 de Octubre de 2004, 04:23:00 »

    Vaya, pues no era tan complicado. Sonrisa
    Muchas gracias!! Muchas risas  
    Un saludo.
                Rubén.  Rebotado