TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 19 de Octubre de 2019, 12:51:36

Título: Pasar Array como parámetro en funciones anidadas
Publicado por: micro_pepe en 19 de Octubre de 2019, 12:51:36
Necesito parar un Array a una función y dentro de esta pasárselo a otra, estoy haciendo lo siguiente:

Código: C
  1. void main(){
  2. unsigned char d[5];
  3.  
  4. funcion1(d);
  5. }

Código: C
  1. void funcion1(unsigned char * a){
  2.  funcion2(a);
  3. }

Código: C
  1. void funcion2(unsigned char * b){
  2.   for(int i=0;i<5;i++){
  3.       lcdprint(*(b+i));
  4.   }
  5. }

No sé si es lo correcto, pero me está dando problemas. Las funciones las tengo en un fichero, si las defino en el mismo fichero del main, funciona correctamente.

Gracias.
Título: Re:Pasar Array como parámetro en funciones anidadas
Publicado por: KILLERJC en 19 de Octubre de 2019, 12:56:56
Citar
No sé si es lo correcto, pero me está dando problemas. Las funciones las tengo en un fichero, si las defino en el mismo fichero del main, funciona correctamente.

Estonces esta bien... El problema es como lo implementas con los demas archivos.

Ejemplo (sin usar .h para hacerlo mas simple)

main.c
Código: C
  1. char d[]="hola";
  2. extern void funcion1(unsigned char *);
  3.  
  4. void main(void) {
  5.  
  6.     funcion1(d);
  7.     while(1){
  8.     }
  9. }


archivo1.c
Código: C
  1. extern void funcion2(unsigned char *);
  2.  
  3. void funcion1(unsigned char * a){
  4.  funcion2(a);
  5. }

archivo2.c
Código: C
  1. void funcion2(unsigned char * b){
  2.     char a;
  3.     for(int i=0;i<5;i++){
  4.       a=(*(b+i));
  5.   }
  6. }

Y funciona correctamente... No use los .h para no poner 3 archivos mas... es lo unico.
Título: Re:Pasar Array como parámetro en funciones anidadas
Publicado por: micro_pepe en 19 de Octubre de 2019, 20:46:43
OK, gracias, así se solucionó.

Saludos!!!