TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: javier en 05 de Febrero de 2010, 17:05:43
-
Hola, estoy migrando a la nueva version del compilador y me encuentro con este problema..
static short A[10];
static int B[10];
A[1]=1;
B[1]=A[1];
printf("%U\n\r",B[1]);
el valor de B[1] tendria que ser 1 pero es 11!...antes podia assignar variables definidas como short a variables int...ahora no?
alguna idea?
-
Hola, por experiencia y para evitar problemas en cualquier plataforma es recomendable castear.
static short A[10];
static int B[10];
A[1]=1;
B[1]=( int ) A[1];
El %d es porque estas mostrando un entero con signo, u se usa para enteros sin signo.
Saludos !
-
Hola Rishi777,
no me funciona la linea B[1]=( int ) A[1];
static short A[10];
static int B[10];
A[1]=1;
lo que hice es multiplicar el valor del bit por 1
B[1]= 1 * A[1];
funciona pero debe haber una manera mas simple de asignar el valor de un bit (0 o 1)a un integer
con el compilador viejo(antes de 4.0) andaba sin problemas
-
Hola lamentablemente no soy usuario cd CCS, te brinde una solución que se me ocurrio, pero al ser CCS no ANSI queda a criterio del compilador este tipo de cosas. Tal vez leyendo un poco la ayuda encuentres una manera elegante de solucionarlo.
Saludos !