TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: aitorsp en 29 de Mayo de 2012, 13:07:11

Título: Manejar bits de variable int16
Publicado por: aitorsp en 29 de Mayo de 2012, 13:07:11
Hola:

Cual seria la mejor manera de acceder a los bits de una variable int16 ?

Por ejemplo si quiero quedarme con 12 bits de la variable y eliminar los 3 mas significativos cual es la forma mas sencilla?

Título: Re: Manejar bits de variable int16
Publicado por: Suky en 29 de Mayo de 2012, 13:30:25
Podes crear una estructura o una unión para trabajar con cada rango de bits.


Saludos!
Título: Re: Manejar bits de variable int16
Publicado por: aitorsp en 29 de Mayo de 2012, 13:40:47
Podes crear una estructura o una unión para trabajar con cada rango de bits.
Saludos!

Podrias por favor poner un ejemplo sencillo ?. En el caso de querer los 12 bits y eliminar los 3 mas altos de una variable int16
Título: Re: Manejar bits de variable int16
Publicado por: KALLITOS en 29 de Mayo de 2012, 14:23:37
hola aitorsp.

variable16 = variable16 & 0x0FFF;

te sirve?.

saludos.
Título: Re: Manejar bits de variable int16
Publicado por: aitorsp en 29 de Mayo de 2012, 14:25:53
hola aitorsp.

variable16 = variable16 & 0x0FFF;

te sirve?.

saludos.

Gracias aunque tengo curiosidad por el ejemplo con la estructura
Título: Re: Manejar bits de variable int16
Publicado por: Suky en 29 de Mayo de 2012, 14:35:23
Código: C
  1. uint16 Val;
  2. struct{
  3.     unsigned L12bits:12;
  4.     unsigned H4bits:4;
  5. }Data;
  6.  
  7. Data.L12bits=0x256;
  8. Val=Data.L12bits


Saludos!
Título: Re: Manejar bits de variable int16
Publicado por: aitorsp en 29 de Mayo de 2012, 16:32:36
Código: C
  1. uint16 Val;
  2. struct{
  3.     unsigned L12bits:12;
  4.     unsigned H4bits:4;
  5. }Data;
  6.  
  7. Data.L12bits=0x256;
  8. Val=Data.L12bits


Saludos!

Vale ok, gracias aunque me gustaria entenderlo un poco.

unsigned L12bits:12;
unsigned H4bits:4;


Esas dos instrucciones que indican?

Data.L12bits=0x256;

Aqui me imagino que accedes la variable L12bits pero por que le asignas 0x256 ?
Título: Re: Manejar bits de variable int16
Publicado por: Suky en 29 de Mayo de 2012, 17:34:37
Utiliza el buscador como para buscar más ejemplos y teoría sobre estructuras en C  ;-)

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Estructuras  -> Estructura de campos de bits


Saludos!


Título: Re: Manejar bits de variable int16
Publicado por: aitorsp en 29 de Mayo de 2012, 18:04:16
Utiliza el buscador como para buscar más ejemplos y teoría sobre estructuras en C  ;-)

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Estructuras  -> Estructura de campos de bits


Saludos!




Ok, gracias. Aclarado!!!