Autor Tema: Error de mikroC al inluir archivo fuente .c  (Leído 1864 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BlueWind

  • PIC10
  • *
  • Mensajes: 20
Error de mikroC al inluir archivo fuente .c
« 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.

Desconectado carpoolo

  • PIC10
  • *
  • Mensajes: 19
Re:Error de mikroC al inluir archivo fuente .c
« Respuesta #1 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 :)

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Error de mikroC al inluir archivo fuente .c
« Respuesta #2 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í:

archivo C:

Código: C
  1. unsigned int buffer[buffer_size];
  2. unsigned short jj=0;
  3.  
  4. void Clear_buffer()
  5.   {
  6. .... etc

Y en el otro archivo C, lo declaras así:

Código: C
  1. extern unsigned int buffer[buffer_size];
  2.  
  3.  
  4. void Conf()  //12F1840 settings
  5. {
  6. //oscilador
  7.  IRCF0_bit=0; IRCF1_bit=1; IRCF2_bit=1; IRCF3_bit=1; // 8MHz freq.
  8. //ports and I2C
  9. ... etc

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Error de mikroC al inluir archivo fuente .c
« Respuesta #3 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
  1. #define LARGO 64
  2.  
  3. int funcion_1(int arg);

libreria.c

Código: C
  1. #include "libreria.h"
  2. char mi_caracter;
  3.  
  4. int funcion_1(int arg)
  5. {
  6.   array[LARGO] = 0
  7.   mi_caracter = 'a'
  8.   // mas codigo
  9. }

main.c

Código: C
  1. #include "libreria.h"
  2.  
  3. void main() {
  4.  
  5.    // Llamo a funcion en otro archivo
  6.    funcion_1(4);
  7.    // Hasta puedo usar el define
  8.    funcion_1(LARGO);
  9. }


Y como te dijeron si queres usar una variable declarada en otro archivo, podes usar el extern.


 

anything