Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: BlueWind en 19 de Noviembre de 2021, 17:26:43
Título: Error de mikroC al inluir archivo fuente .c
Publicado por: BlueWind en 19 de Noviembre de 2021, 17:26:43
Hola compañeros del foro,
Tengo un probelma al incluir en mikroC archivos .c que está alojados en otra carpeta diferente a la del proyecto principal. Me explico mejor.
creo un archivo .h, cuyo contenido es: // Header file
#define buffer_size 64
unsigned int buffer[buffer_size];
//Fin
creo un archivo .c, cuyo contenido es:
// Source File #include <Var_Header.h>
unsigned short jj=0;
void Clear_buffer() { while (jj<=100) { buffer[jj]=0; jj++; } }
//Fin
Estos dos archivos está alojados en un folder llamado INXXX En la definción de Paths de mickroC está el camino hacia INXXX tanto para el .c como para el .h
El programa principal está en otra carpeta y su contenido es:
#include <Buffer_V.c>
//Main programm
void Conf() //12F1840 settings { //oscilador IRCF0_bit=0; IRCF1_bit=1; IRCF2_bit=1; IRCF3_bit=1; // 8MHz freq. //ports and I2C ANSELA=0x00; // All lines are digital I/O TRISA=0x08; // All lines are Digital outputs LATA=0x00; // Write 0's to all outputs; }
void main() { Conf(); Clear_buffer(); }
Cuando compilo me da un error como el que se muestra en el adjunto.
¿Estoy programando mal? o es algún candado que tiene mikroC que no permite alojar archivos .c en otras carpetas que no sea la del proyecto principal?
Agradezco cualquier tip que me aclare lo que stá sucediendo.
Gracias.
Título: Re:Error de mikroC al inluir archivo fuente .c
Publicado por: carpoolo en 19 de Agosto de 2022, 11:42:11
Hola
Las veces que he trabajado con archivos externo, por lo general incluyo solo el .h y tanto el .h como el .c tienen el mismo nombre Espero que eso te sirva
Saludos :)
Título: Re:Error de mikroC al inluir archivo fuente .c
Publicado por: DominusDRR en 19 de Agosto de 2022, 19:17:57
Tal vez deberías declarar el buffer en el archivo c, no en el *.h. Así:
Título: Re:Error de mikroC al inluir archivo fuente .c
Publicado por: KILLERJC en 19 de Agosto de 2022, 23:27:42
Citar
¿Estoy programando mal?
SI, incluir un archivo .c es lo mismo que copiar el codigo de ese archivo en donde pusiste el include..
Lo que generalmente haces, es crear un .h con el prototipo de funcion que deseas "compartir" y las variables que deseas compartir con otros archivos. Ej.
libreria.h
Código: C
#define LARGO 64
int funcion_1(int arg);
libreria.c
Código: C
#include "libreria.h"
char mi_caracter;
int funcion_1(int arg)
{
array[LARGO]=0
mi_caracter ='a'
// mas codigo
}
main.c
Código: C
#include "libreria.h"
void main(){
// Llamo a funcion en otro archivo
funcion_1(4);
// Hasta puedo usar el define
funcion_1(LARGO);
}
Y como te dijeron si queres usar una variable declarada en otro archivo, podes usar el extern.