TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Protheus5 en 26 de Mayo de 2005, 12:22:00

Título: Declarar datos de 32 bits
Publicado por: Protheus5 en 26 de Mayo de 2005, 12:22:00
Hola gente, hace poco me surgió una duda a la hora de programar.

Me di cuenta de que el compilador CCS difiere del C de toda la vida en la longitud de los datos definidos.

En un programa que hice en Visual C, declaré un dato long, que son 32 bits, pero a la hora de usar C, el long es de 16 bits.

He visto en la ayuda del compilador que para declarar un dato de 32 bits, se puede usar INT32. Bien, pero cómo lo imprimo??

(NOTA: no puedo declararlo como float porque este tipo de datos no admite ciertas operaciones como desplazamientos de bits,...)

Si hago ésto:

unsigned int32 numero;
numero=99999;

printf("%u", numero);

tengo un problema, porque no me imprime 99999. Enfurruñado

Sabeis cual es la sentencia adecuada para que el printf me saque un INT32???


Otra duda: si hago una conversion al principio del progrma mediante la sentencia #TYPE, para hacer corresponder datos entre CCS y C normal

ejemplo: #TYPE  SHORT=8, INT=16, LONG=32


me surge otra duda: como le digo a la expresion printf que me imprima un short???

Eso en la ayuda no viene.
Os agradezco cualquier comentario que podais hacer

Un saludo
Título: RE: Declarar datos de 32 bits
Publicado por: Xelene en 27 de Mayo de 2005, 02:27:00
Holas, te respondo a la primera pregunta....

¿Has probado a poner printf("%Lu", numero);?

Espero q así te funcione

Saludos!!
Título: RE: Declarar datos de 32 bits
Publicado por: pocher en 28 de Mayo de 2005, 00:42:00
Sí, como dice Xelene con "lu" te imprimirá el int32.

Si con type tienes declarada una variable de 8 bits tendrás que imprimirla con "u". Las de 16 y 32 con "lu"

Un saludo
Título: RE: Declarar datos de 32 bits
Publicado por: Protheus5 en 28 de Mayo de 2005, 03:48:00
Efectivamente Xelene, poniedo %lu me imprime el int32.

No se por que no lo probe antes, quiza me confundia el long unsigned.....

Gracias Xelene y Pocher por las aclaraciones, un saludo!! Giño