Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Algec en 06 de Junio de 2012, 08:17:23
Título: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 06 de Junio de 2012, 08:17:23
A ver, no consigo compilar un fichero porque le falta ese fichero de cabecera. En otro post me dicen que es de Mikroc pero yo busque ese compilador y en el que encontre no esta ninguno que empiece por "pic" De CCS no es ya que yo trabajo en CCS y no se denominan pic..... Si alguien tiene ese fichero o me dice el compilador o porque no esta en mi Mikroc ...no sabe lo agradecido que estaria A ver quien sale en mi auxilio. Mil gracias como siempre
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 06 de Junio de 2012, 08:27:01
Yo lo tengo en sdcc.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 06 de Junio de 2012, 09:42:15
lo voy a bajar a ver si por fin consigo compilarlo Mil gracias
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 06 de Junio de 2012, 09:55:48
A ver, este es un compilador gratuito de linea de comandos, pero no aparece el pic16F876 en las librerias de cabecera. Puedes subirlo por favor? Seria creo lo mas facil Yo no comprendo porque no aparece porque segun las intrucciones de compilacion deberia estar en el directorio/sdcc/include/pic16 Lo cierto es que estuve buscandolo hasta con el buscador de windows y no me aparece
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 06 de Junio de 2012, 18:32:15
Tenes que ejecutarlo con la opcion --use-non-free y el archivo se encuentra en "sdcc/non-free/include/pic14".
pic16 se refiere a los pic con instrucciones de 16bits que son los PIC18F.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 07 de Junio de 2012, 07:03:25
ok correcto gracias. Mirare a ver si consigo recompilar todo
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 07 de Junio de 2012, 08:09:44
a ver trato de recompilar con el siguiente comando
Me harias el favor de revisarlo y decirme que me pasa? te subo los dos ficheros orginales que necesito recompilar despues de que los modifique yo. Primero tengo que verificar que recompila los originales , si no no podre modificar y recompliar , o me volvere loco pensando que el error es de lo que mofifique yo.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 07 de Junio de 2012, 15:18:35
Mirando el código me doy cuenta de que no esta hecho para sdcc. Puede que sea para HI-TECH C. Digo esto por la forma en que se declara la rutina de interrupción
Código: C
void interrupt Isr(void)
, en sdcc no se hacen asi, pero buscando en google esa linea, me aparecen varios resultados sobre HI-TECH C. Lo que me parece raro, es la forma en que configura el pic.
Creo que deberías probar si compila bien con HI-TECH C o adaptarlo para algún otro compilador.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 08 de Junio de 2012, 06:58:28
mirare a ver ese, si puedo conseguirlo Desde luego no es CCS y parece que tampoco sea SDCC a ver ese que me dices tu Gracias
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 08 de Junio de 2012, 07:32:45
Parece que tampoco es HiTECh porque no compila porque no reconoce el fichero de cabecera de marras. HiTech no usa el formato pic16F876.h No se que hacer. es mucho trabajo reconstruirlo para ccs. Eso me temo
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: MGLSOFT en 08 de Junio de 2012, 08:09:16
Y el compilador de Microchip no usa esa sintaxis ??
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 08 de Junio de 2012, 10:31:53
Memory Summary: Program space used 4A8h ( 1192) of 2000h words ( 14.6%) Data space used 71h ( 113) of 170h bytes ( 30.7%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Configuration bits used 0h ( 0) of 1h word ( 0.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Running this compiler in PRO mode, with Omniscient Code Generation enabled, produces code which is typically 40% smaller than in Lite mode. The HI-TECH C PRO compiler output for this code could be 476 words smaller. See http://microchip.htsoft.com/portal/pic_pro for more information.
#include <pic16f876.h> y donde dice "ADGO" hay que cambiarlo por GO.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 08 de Junio de 2012, 11:19:25
Mil gracias, tiene que ser hi tec, voy a revisarlo y trato e recompilar yo. MIL GRACIAS DE NUEVO; no se que haria sin vosotros.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 08 de Junio de 2012, 11:27:58
Encontrado el fallo del de cabecera es pic1687x.h Ahora me sale esto
C:\Program Files (x86)\HI-TECH Software\PICC>picc --chip=16f876 c:\compilacion\modmpg.c (1273) Omniscient Code Generation not available in Lite mode (warning) HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.70 Copyright (C) 2009 Microchip Technology Inc. C:\Program Files (x86)\HI-TECH Software\PICC\9.70\include\pic1687x.h: 3: #warning Header file pic1687x.h included directly. Use #include <htc.h> instead. ^ (162) #warning: Header file pic1687x.h included directly. Use #include <htc.h> instead. (warning) c:\compilacion\modmpg.c: MakeModBusFN03() 235: FSR = (&buffer) + 3; ^ (358) illegal conversion of pointer to integer (warning) 295: break; ^ (345) unreachable code (warning)
Memory Summary: Program space used 447h ( 1095) of 2000h words ( 13.4%) Data space used 70h ( 112) of 170h bytes ( 30.4%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Configuration bits used 0h ( 0) of 1h word ( 0.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Running this compiler in PRO mode, with Omniscient Code Generation enabled, produces code which is typically 40% smaller than in Lite mode. The HI-TECH C PRO compiler output for this code could be 438 words smaller. See http://microchip.htsoft.com/portal/pic_pro for more information.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 08 de Junio de 2012, 11:40:16
es #include <pic16f876.h> con "f" minuscula.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 09 de Junio de 2012, 05:10:38
Sigo con el mismo resultado, en Hitech solo encuentro el fichero pic1687x.h que es el que corresponde al 16f876, los demas no son los correspondientes, ademas es la cabecera que usa el fichero original que Siliconio si compilo.El que tudices pic16f876.h no esta en el include de mi compilador. No se aun porque no compila pero lo que si esta clarisimo es que esta hecho en Hitech.. Seguire trabajando en esto a ver que consigo.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 09 de Junio de 2012, 11:34:32
A el archivo pic1687x.h lo encontré en la carpeta legacy que esta en la carpeta include. Parece ser que ese archivo es de versiones anteriores a la 9.81.
Tendrás que copiarlo a la carpeta include o aprovechar para actualizar el codigo.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 09 de Junio de 2012, 16:23:29
Cambie la version a la que tu usas, bajada de Microchip en verios de 45 dias y haciendo lo que decias, cambiando los include y el GO ya compila. Mil gracias...... Ahora jajajja me surje otra duda Ese GO en vez de ANGO funcionara? Porque ese cambio? Si todo es correcto en esta nueva version de Hitech, solo tengo que comprobar y modificar hasta que funcione. Te estoy muy agradecido te has tomado muchas molestias y no se como darte las gracias. Supongo que tendre mas dudas y dare mas la lata....lo siento. No conozco el Hitech y solo trabajo en CCS. Supongo que seran similares pero veo que el Hitech es mas profesional quizas me pase.....
Gracias gracias y gracias , este foro es de lo mejor que conozco y creeme publico en varios de distintos temas y nunca encontre uno como este.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 09 de Junio de 2012, 17:01:55
El cambio lo hice porque me daba error ese nombre, supuse que se trataba del bit GO de ADCON0 (Por la similitud (ADGO~GO) y por los comentarios) y probé.
El cambio tendría que funcionar sin problemas ya que están declarados de la misma forma
Código: C
volatile bit GO @ ((unsigned)&ADCON0*8)+2;
volatile bit ADGO @ (unsigned)&ADCON0*8+2;
Yo tambien creo este foro es de lo mejor, aprendí mucho en el.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 10 de Junio de 2012, 15:27:48
Algo que no entiendo.....Compile en mplab/ Hitech 9.83 pro version registrada y me sale un fichero .hex que tendria en asm 625 lineas- Si miro el .hex original que tengo y tiene solo 65. Como es eso posible? Para ver el asm uso el Winpic800 que convierte el .hex en asm. No lo comprendo la verdad. Aun no pude probar el recompilado en el chip en hardware por falta de tiempo pero no comprendo como puede tener el original que grabe en el pic en su dia...y que tengo funcionando desde hace años solo 65 lineas en asm. os subo el original .hex y el compilado mio a ver que es lo que pasa....
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: diguito_69 en 10 de Junio de 2012, 18:19:23
Hola, los abrí con piklab y la diferencia es de solo 15 líneas, 681 para "MDMPG.hex" y 666 para "MBMPG 2.0 configuracion OK.hex" (Estan incluidos los comentarios que pone piklab).
Debe haber un error con el Winpic800 al abrir ese archivo, me parece imposible que todo ese código c entre en 65 lineas y si le agregas las funciones que ya tiene el compilador (Suma, resta, etc.), es mas que imposible.
Saludos.
Título: Re: pic16f876.h Donde puedo encontrarlo, y de que compilador es?
Publicado por: Algec en 11 de Junio de 2012, 15:36:05
Gracias de nuevo, no se ya como agradecerte. A ver si el trabajo me deja una hora y lo meto en hardware, cuando funcioen hare las modificaciones y a probar.