TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: umalrovi en 13 de Noviembre de 2007, 08:49:07
-
Buenas compañeros,
Siempre que me pongo a programar y quiero sacar un dato por pantalla me hago un lio, no por desconocer los tipos de datos sino porque como programo de uvas a peras pues se me olvida.
1.- Si tengo un entero (1 byte) declarado como int1 ADC=0; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %d"ADC);
2.- Si tengo un entero (1 byte) declarado como int8 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %d"ADC);
3.- Si tengo un entero (2 bytes) declarado como int16 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %L"ADC);
4.- Si tengo un entero (4 bytes) declarado como int32 ADC=0x00; el dato a la hora de sacarlo por pantalla sería: printf("ADC= %LF"ADC);
Si declaro la variable como un int será como el caso 1 (int8-->%d);
Si declaro la variable como un long será como el caso 3 (int16-->%L);
Si declaro la variable como un Char a la hora de visualizar el caracter será %C;
Si declaro la variable como un float será como el caso 4 (int32-->%Lf);
Ya me vais diciendo, un saludo.
P.D. Todo esto viene a que quiero representar un entero por el LCD pero antes de representarlo pillo una muestra del cad (que es un float) hago unas operaciones y la quiero representar como un entero.
Muchas gracias de antemano!!!
-
Buenas quería preguntaros esto:
Si tengo una variable definida como:
unsigned long int resultado_AD=0x00;
y luego quiero sacarla por pantalla(RS232) de la siguiente forma:
printf("El valor de resultado es: %f", resultado);
¿sería correcto?porque me da el compilador el siguiente error: "printf format type is invalid"
Gracias de antemano.
Alfonso
-
Te da error porque el modificador que pones es para sacar una float por pantalla, no una long.
Mira la ayuda de printf() que alli estan los modificadores y tambien ejemplos de salida de datos... :mrgreen:
-
fijate en la ayuda de CCS, viene algo como esto:
c Character
s String or character
u Unsigned int
d Signed int
Lu Long unsigned int
Ld Long signed int
x Hex int (lower case)
X Hex int (upper case)
Lx Hex long int (lower case)
LX Hex long int (upper case)
f Float with truncated decimal
g Float with rounded decimal
e Float in exponential format
w Unsigned int with decimal place inserted. Specify two numbers for n. The first is a total field width. The second is the desired number of decimal places.
Example formats:
Specifier Value=0x12 Value=0xfe
%03u 018 254
%u 18 254
%2u 18 *
%5 18 254
%d 18 -2
%x 12 fe
%X 12 FE
%4X 0012 00FE
%3.1w 1.8 25.4
Si quieres sacarlo como entero decimal deberas poner %d, %Ld para decimal largo.
Saludos
-
Muchsiiimas gracias!!!
Mira que miré la ayuda (data definitions) pero no caí en mirar el printf. Bueno pues eso muchas gracias. Se me hace un poco pesada la ayuda del CCS aunque es muy completa.