Autor Tema: info ccs: organizar programas  (Leído 1587 veces)

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

Desconectado tanemone

  • PIC10
  • *
  • Mensajes: 1
info ccs: organizar programas
« en: 05 de Diciembre de 2016, 07:44:51 »
hola,
alguien tiene info sobre como organizar programas para que el main no quede tan abultado? es decir, por ejemplo hacer "programas" a parte del main para hacer los init del micro (como por ejemplo, llamar a init_port, init_lcd, init_interrupciones, etc etc

que quede una cosa asi mas o menos:
#include ....
variables

void main()
   init micro();


y en init micro que llame a un fichero generico para dicho micro que contenga el init_lcd, init_port, init_interrupciones, init_adc ... asi cada vez que quiera acceder a como esta inicializado el micro miro tal fichero y ya esta, no tengo que buscarlo por el programa principal...

aunque no se si esto es posible..
gracias de antemano...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:info ccs: organizar programas
« Respuesta #1 en: 05 de Diciembre de 2016, 08:06:52 »
- Crear otro archivo .c : Aca pondrias tus funciones como init_micro(void)

- Crear un archivo cabecera .h : aca pondrias el prototipo de la funcion y lo incluis en ambos .c. Ejemplo.


main.c
Código: C
  1. #include "micabecera.h"
  2. #include  ....
  3.  
  4. //Aca defino mis variables
  5.  
  6. void main(void)
  7. {
  8.       init_main();
  9.       while(1)
  10.       {
  11.           //Aca codigo de main
  12.           funcion2();
  13.        }
  14. }

micabecera.h
Código: C
  1. #ifdef MICABECERA_H
  2. #define MICABECERA_H
  3. void init_main(void);
  4. void funcion2(void);
  5. #endif // MICABECERA_H

miarchivo.c
Código: C
  1. #include "micabecera.h"
  2. #include ..... // lo que sea que uses aca
  3.  
  4. // Aca variables que se usan aca nomas
  5.  
  6. void init_main(void)
  7. {
  8.         //Aca el codigo de tu init
  9. }
  10.  
  11. void funcion2(void)
  12. {
  13.        // Aca el codigo de tu funcion2
  14. }

La idea es que las variables que se usan en el archivo "miarchivo.c" solamente se usen ahi, y lo mismo para el main.c, Si aun asi necesitas compartir una variable se debe declararla como extern. Ejemplo, si declaras una variable en main.c y lo queres usar en miarchivo.c quedaria asi:

main.c
Código: C
  1. int variable;

miarchivo.c
Código: C
  1. extern int variable;

Mas que obvio que esto se intenta evitar.. y por eso se les pone el static de esa forma su alcanze se encuentra unicamente en el archivo en cuestion.


 

anything