Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Thulsa Doom en 26 de Abril de 2018, 18:59:50
Título: [SOLUCIONADO]Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 26 de Abril de 2018, 18:59:50
Hola a todos, siempre paso un infierno cada vez que quiero hacer un proyecto nuevo, el problema es siempre de los archivos fuentes, no sé que hago mal pero el IDE me da errores que no encuentro explicación, ahora mismo he empezado uno nuevo y siempre uso projectwizar y lo voy montanto poco a poco y a medida que me compila bien voy añadiendo más archivos, pero esta vez me está dando un error que por más que reviso las rutas y los archivos no le encuentro explicación. Por eso estoy aquí para pedir ayuda una vez más :oops: a ver si alguien sabe a que se debe esto para que no me pase más.
El error que me da es este: (https://i.imgur.com/GyIr6fS.png)
Esta vez estoy usando MPLAB + C18 v3.47, si hace falta que suba el proyecto me lo piden, está en pañales no tiene nada, solo alguna función que otra vacía y lo que si tiene es la estructura que quiero que tenga, una vez esta estructura la compile bien ya empiezo a meterle más dispositivos y más cosas Gracias
Título: Re:Problema al montar un proyecto nuevo
Publicado por: electroipod en 26 de Abril de 2018, 19:05:55
pon tu codigo para compilarlo.
Título: Re:Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 26 de Abril de 2018, 19:31:09
Vale, aquí está, como dije las funciones están vacías
Título: Re:Problema al montar un proyecto nuevo
Publicado por: electroipod en 26 de Abril de 2018, 19:37:34
no hay nada en la carpeta revisalo.
Título: Re:Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 26 de Abril de 2018, 19:52:32
que raro, no obstante lo subo de nuevo https://mega.nz/#!tYtynSqb!siohebiedr3qAMxRhkGnD2lxZzfgFvFDhPWJYVBKCPU
Título: Re:Problema al montar un proyecto nuevo
Publicado por: electroipod en 26 de Abril de 2018, 20:00:48
y porque mejor no usas el mplabx con el xc8.
Título: Re:Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 26 de Abril de 2018, 20:05:07
Por que el MPLABX con el XC8 me ha estado dando algún que otro problema y quería descartar
Título: Re:Problema al montar un proyecto nuevo
Publicado por: electroipod en 26 de Abril de 2018, 20:06:43
ok entonces dame tu archivo pero el que hiciste en mplabx, yo desde hace años trabajo con el mplabx y no he tenido problemas.
Título: Re:Problema al montar un proyecto nuevo
Publicado por: KILLERJC en 26 de Abril de 2018, 20:09:50
Intenta quitar esta linea del main.h y ponerlo solo en el main.c:
Código: C
#include "Common/HardwareProfile.h"
Por que el error que no se llega a leer completo, dice que estan definidos 2 veces, y temo que sean los FUSES.
Título: Re:Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 27 de Abril de 2018, 04:42:47
Hola, siento no haber seguido ayer pero ya era muy tarde y tenía que ir a dormir.
El problema que me está dando el MPLABX es con el ICD3, aveces lo reconoce y otras no, en verdad me da muchos problemas con muchas cosas, cuando voy ha hacer un proyecto nuevo me tiro más tiempo resolviendo problemas que lo que es programando :5].
Bueno, he hecho lo que me dices y sigo con problemas, he probado a cambiar de sitio los archivos de cabecera y siempre me da algún error, ahora al cambiar ese archivo a main.c me da un error de que el compilador no reconoce los registros de los puertos del pic (https://i.imgur.com/gy5yDz2.png)
Si le añado a la librería donde defino los puestos el archivo HardwareProfile.h me devuelve el error del principio. Lo más curiosos es que so uso esas definiciones de puertos en el main.c no me da error alguno.
Siempre tengo problemas con los malditos archivos de cabecera ¿Hay algún método o pasos a seguir o algo para armar paso por paso un proyecto y saber donde meter los archivos de cabecera para que no del estos problemas?
NUEVO: he cambiado el HardwareProfile.h al código fuente donde uso los puertos y ya no me da problemas, esto me vuelve loco. (https://i.imgur.com/LgKwZkr.png)
Título: Re:Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 27 de Abril de 2018, 07:29:54
SOLUCIONADO:
El problema como bien ha dicho el compañero KILLERJC, el problema es de los fuses ya que esa misma librería la uso para configurar todo el pic al completo, la idea es hacer un código flexible y que añadiendo un archivo de cabecera con la configuración del pic no haya más que tocar, entonces el problema está en los fuses ya que cada vez que llamo a ese archivo de cabecera, se vuelve a cargar el valor de los fuses y entonces ese es e error, ahora viene la pregunta de... ¿como solucionarlo?, pues es muy fácil... fácil ahora jajaja, y en realidad no sé si es la manera correcta, esto lo he sacado de las librerías de micro chip tcpip, si alguien me lo explica será perfecto
bueno pues es usando una directiva define, se hace un defiene en main.c de esta manera por ejemplo: #define THIS_IS_STACK_APPLICATION
(https://i.imgur.com/ERMDHJF.png)
y en el archivo de configuración del pic se pone los fuses entre #if define (THIS_IS_STACK_APPLICATION)
fuses.......
#endif
(https://i.imgur.com/tGhA11d.png) y de aquí para abajo se le configura los puestos y todo lo demás
Título: Re:[SOLUCIONADO]Problema al montar un proyecto nuevo
Publicado por: electroipod en 27 de Abril de 2018, 11:17:03
Un tanto complicado, en el mplabx se genera solo los fuses solo copias y pegas no tienes que estar poniendo otras directivas más.
Título: Re:[SOLUCIONADO]Problema al montar un proyecto nuevo
Publicado por: KILLERJC en 27 de Abril de 2018, 11:31:52
El problema no son los FUSES y/o como se generan. Por mi tambien iria a MPLAB X, pero hay gente que siente que MPLAB X es lento y lo entiendo. Tambien que C18 le permite usar las optimizaciones, asi que tambien los entiendo.
El problema esta en que el quiere incluir solo un archivo cabecera para todos los archivos .c que tenga Y es ahi donde el comete el error ya que al estar incluido en todos se definen los FUSES en todos los .c que agregue, por eso utilizo el define para solo limitarlo al main.c. Tambien podria haber realizado un archivo extra con solo los FUSES, pero esto va en contra de lo que intenta. Personalmente el main de un proyecto un poco mas complejo estaria libre de cualquier acceso al hardware. Y solo haria acceso al hardware a traves de algun/os archivos port, que es alli donde incluiria nomas lo del micro.
Tambien pienso que para un proyecto muy pequeño es posible lo que intenta, pero al hacer un proyecto mas grande, implica que todos los .c tengan los .h de TODAS las librerias, y eso lo veo un poco absurdo, por poner un ejemplo, tenes un archivo que maneja lee archivos de una SD con FATfs, y un archivo que maneja una memoria flash, porque en el archivo de memoria flash vas a incluir todos los .h de fatfs, sd, etc. El auto completar del IDE se va a volver loco y va a presentar todas las opciones en ves de unicamente las necesarias.
Título: Re:[SOLUCIONADO]Problema al montar un proyecto nuevo
Publicado por: Thulsa Doom en 27 de Abril de 2018, 14:02:23
Gracias por las explicación, nunca se deja de aprender... voy viendo las posibles soluciones, me quedo con todo lo que han comentado.... Cuando termine el proyecto del parpadeo de un led con el timer0 si les parece bien lo subo para que todos lo tengan como ejemplo y lo incluyan en sus proyectos, está mejor que usar delays