TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: yamilongiano en 27 de Agosto de 2014, 20:05:17
-
hola bueno ahoa me meto cada ves mas en la programacion. gracias al foro ya em meto a mirar mas en las librerias. aunque aun me logra comprender por completo todo. pero siento que voy por buen camino.
bueno he compilado un pic que nunca habia usado. el pic18f46K20 se compilo sin problemas pero genera algunos errores que quiero comprender mas que errores son advertencias del MPLAB X IDE.
a continuacion porgo la salida del compilador
output:
:: warning: (1273) Omniscient Code Generation not available in Free mode
pruebas.c:27: warning: (1385) variable "_RA0" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8391)
pruebas.c:28: warning: (1385) variable "_RB0" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8407)
pruebas.c:30: warning: (1385) variable "_RB0" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8407)
pruebas.c:32: warning: (1385) variable "_RA1" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8393)
pruebas.c:33: warning: (1385) variable "_RB1" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8409)
pruebas.c:35: warning: (1385) variable "_RB1" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8409)
pruebas.c:37: warning: (1385) variable "_RA2" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8395)
pruebas.c:38: warning: (1385) variable "_RB2" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8411)
pruebas.c:40: warning: (1385) variable "_RB2" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8411)
:: warning: (1311) missing configuration setting for config word 0x300001, using default
:: warning: (1311) missing configuration setting for config word 0x300002, using default
:: warning: (1311) missing configuration setting for config word 0x300003, using default
:: warning: (1311) missing configuration setting for config word 0x300005, using default
:: warning: (1311) missing configuration setting for config word 0x300006, using default
:: warning: (1311) missing configuration setting for config word 0x300008, using default
:: warning: (1311) missing configuration setting for config word 0x300009, using default
:: warning: (1311) missing configuration setting for config word 0x30000A, using default
:: warning: (1311) missing configuration setting for config word 0x30000B, using default
:: warning: (1311) missing configuration setting for config word 0x30000C, using default
:: warning: (1311) missing configuration setting for config word 0x30000D, using default
pruebas.c:27: warning: (1385) variable "_RA0" is deprecated (declared at C:\Program Files\Microchip\xc8\v1.32\include\pic18f46k20.h:8391)
segun comprendo la variable RA0 tiene un problema, pero no entiendo bien como solucionarlo y la importancia del problema ya que logra compilar, y en el simulador proteus funciona bien.
is deprecated ?... ¿significa que no ha sido declarada en el pic18F46K20.h o dejada al aire me imagino?. no comprendo bien este termino ya que la traduccion significa menospreciada o dejada de lado. en programacion quizas tiene otro sentido.
y por ultimo:
pic18f46k20.h:8391 (:8391) este como especie de puerto ( en direcciones web), este numero no se a que hace referencia, si alguien es tan amable de explicarme estos terminos ya que al parecer MPLAB X IDE te dice donde se encuentra el error o te lo aproxima o referencia donde podria estar el problema y me gustaria comenzar a entender este tipo de lenguaje y advertencias.
desde ya gracias.
-
Los WARNING" no son errores, solo avisos, el programa compila y funciona igualmente.
"Deprecated", se refiere a que esa instrucción o formato, en este caso manera de declarar una variable, ya no es recomendable usarla, porque hay otras más adecuadas, y muy probablemente en las siguientes versiones del compilador desaparecerá y si que te dará error de compilación.
Yo esto del "deprecated" lo he vivido con el PHP en el diseño de páginas web, creo recordar que al pasar de PHP 5.2 a 5.3, aparecían muchos avisos de ese tipo, el programa funcionaba pero te estaba avisando que para la próxima versión esa instrucción sería eliminada, de esa manera te insta a que la reemplaces por otra instrucción que cumple la misma función, pero con mejores o nuevas prestaciones.
Mira en el manual del compilador, a ver que variable o formato de variable debes de usar para reemplazar a todas las que te salen con deprecated.
En cuanto a pic18f46k20.h:8391 , ese 8391 probablemente se está refiriendo al número de linea dentro del fuente pic18f46k20.h
-
Los WARNING" no son errores, solo avisos, el programa compila y funciona igualmente.
"Deprecated", se refiere a que esa instrucción o formato, en este caso manera de declarar una variable, ya no es recomendable usarla, porque hay otras más adecuadas, y muy probablemente en las siguientes versiones del compilador desaparecerá y si que te dará error de compilación.
Yo esto del "deprecated" lo he vivido con el PHP en el diseño de páginas web, creo recordar que al pasar de PHP 5.2 a 5.3, aparecían muchos avisos de ese tipo, el programa funcionaba pero te estaba avisando que para la próxima versión esa instrucción sería eliminada, de esa manera te insta a que la reemplaces por otra instrucción que cumple la misma función, pero con mejores o nuevas prestaciones.
Mira en el manual del compilador, a ver que variable o formato de variable debes de usar para reemplazar a todas las que te salen con deprecated.
En cuanto a pic18f46k20.h:8391 , ese 8391 probablemente se está refiriendo al número de linea dentro del fuente pic18f46k20.h
genial muchas gracias entendi perfectamente. =)
-
Los WARNING" no son errores, solo avisos, el programa compila y funciona igualmente.
"Deprecated", se refiere a que esa instrucción o formato, en este caso manera de declarar una variable, ya no es recomendable usarla, porque hay otras más adecuadas, y muy probablemente en las siguientes versiones del compilador desaparecerá y si que te dará error de compilación.
Yo esto del "deprecated" lo he vivido con el PHP en el diseño de páginas web, creo recordar que al pasar de PHP 5.2 a 5.3, aparecían muchos avisos de ese tipo, el programa funcionaba pero te estaba avisando que para la próxima versión esa instrucción sería eliminada, de esa manera te insta a que la reemplaces por otra instrucción que cumple la misma función, pero con mejores o nuevas prestaciones.
Mira en el manual del compilador, a ver que variable o formato de variable debes de usar para reemplazar a todas las que te salen con deprecated.
En cuanto a pic18f46k20.h:8391 , ese 8391 probablemente se está refiriendo al número de linea dentro del fuente pic18f46k20.h
genial muchas gracias entendi perfectamente. =)
hola me he dado el tiempo por que con los estudios me cuesta. bueno he mirado la libreria del pic18F46K20.h lo abri con notepad pro para buscar la linea...
#define PSSBD1_bit BANKMASK(ECCP1AS), 1
extern volatile __bit _DEPRECATED RA0 @ (((unsigned) &PORTA)*8) + 0;
#define RA0_bit BANKMASK(PORTA), 0
extern volatile __bit _DEPRECATED RA1 @ (((unsigned) &PORTA)*8) + 1;
#define RA1_bit BANKMASK(PORTA), 1
extern volatile __bit _DEPRECATED RA2 @ (((unsigned) &PORTA)*8) + 2;
#define RA2_bit BANKMASK(PORTA), 2
extern volatile __bit _DEPRECATED RA3 @ (((unsigned) &PORTA)*8) + 3;
#define RA3_bit BANKMASK(PORTA), 3
extern volatile __bit _DEPRECATED RA4 @ (((unsigned) &PORTA)*8) + 4;
#define RA4_bit BANKMASK(PORTA), 4
extern volatile __bit _DEPRECATED RA5 @ (((unsigned) &PORTA)*8) + 5;
#define RA5_bit BANKMASK(PORTA), 5
extern volatile __bit _DEPRECATED RA6 @ (((unsigned) &PORTA)*8) + 6;
#define RA6_bit BANKMASK(PORTA), 6
extern volatile __bit _DEPRECATED RA7 @ (((unsigned) &PORTA)*8) + 7;
#define RA7_bit BANKMASK(PORTA), 7
extern volatile __bit _DEPRECATED RB0 @ (((unsigned) &PORTB)*8) + 0;
#define RB0_bit BANKMASK(PORTB), 0
extern volatile __bit _DEPRECATED RB1 @ (((unsigned) &PORTB)*8) + 1;
#define RB1_bit BANKMASK(PORTB), 1
extern volatile __bit _DEPRECATED RB2 @ (((unsigned) &PORTB)*8) + 2;
#define RB2_bit BANKMASK(PORTB), 2
extern volatile __bit _DEPRECATED RB3 @ (((unsigned) &PORTB)*8) + 3;
#define RB3_bit BANKMASK(PORTB), 3
extern volatile __bit _DEPRECATED RB4 @ (((unsigned) &PORTB)*8) + 4;
#define RB4_bit BANKMASK(PORTB), 4
extern volatile __bit _DEPRECATED RB5 @ (((unsigned) &PORTB)*8) + 5;
#define RB5_bit BANKMASK(PORTB), 5
extern volatile __bit _DEPRECATED RB6 @ (((unsigned) &PORTB)*8) + 6;
#define RB6_bit BANKMASK(PORTB), 6
extern volatile __bit _DEPRECATED RB7 @ (((unsigned) &PORTB)*8) + 7;
#define RB7_bit BANKMASK(PORTB), 7
he encontrado como tu dijiste la ubicacion del los deprecated. y las salidas, tal como dijiste ese numero te dice donde se encuentra la advertencia.
seria mucho pedirte por favor explicarme como se lee o se entiende esto linea .
ahora voy a ver como encuentro el manual del xc8 ( de seguro en la carpeta de instalacion), como puedo buscar la actualizacion de la sintaxis.
los busco como actualizacion de codigo de la variable. o se busca por pic eso no entiendo,Es primera vez comienzo a analizar mas profundo esto del lenguaje y las liberrias.
antes solo sabia que se llamaba rb0 (i/O) ahora estoy mirando mas profundo.