TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: astenoth en 15 de Marzo de 2010, 18:11:47

Título: Ayuda con typedef struct MikroC
Publicado por: astenoth en 15 de Marzo de 2010, 18:11:47
Hola a todos, soy nuevo en el foro y practicamente en el mundo de los PIC's
Llevo haciendo pinitos ya un tiempo, y siempre he intentado usar typedef struct y ahora mas que estoy intentando hacer un menu para un LCD o adaptando mejor dicho.
Bueno al grano el codigo que declaro en MikroC es el siguiente
Código: [Seleccionar]
#define MENU_FIN 0
#define MENU_COMANDO 1
#define MENU_SUBMENU 2
#define SUBMENU_ANTERIOR 3
#define MENU_MAIN 4

typedef struct{
        char TipoMenu;
        char *TextoMenu;
        char *PtrMenuSeleccion;
}MENU;

MENU SubMenu1[];

MENU MenuPrincipal[]={
        {MENU_MAIN,"",vInicializaSistemaDisplay},
        {MENU_SUBMENU,"Sub Menu",SubMenu1},
        {MENU_FIN,"",0}
        };
Al compilarlo siempre me da el mismo fallo: cannot cast " to " y too many initializers

Seguro que es un fallo mio o alguna tonteria, pero por mas que busco no encuentro nada.

Un saludo a todos
Título: Re: Ayuda con typedef struct MikroC
Publicado por: Suky en 15 de Marzo de 2010, 21:20:23
Se me hace conocido el código!  :shock:  :D :D

No tengo idea como trabaja MikroC con punteros a memoria de programa, que es lo que en C18 se hace con rom char *PtrMenuSeleccion. Por ejemplo en CCS no se puede hacer rom char *TextoMenu, pero si se puede trabajar con punteros a funciones creando un typedef del puntero con anterioridad:
Código: C
  1. typedef void *_Ptr(void)
  2.  
  3. typedef struct{
  4.         char TipoMenu;
  5.         char *TextoMenu;
  6.         _Ptr PtrMenuSeleccion;
  7. }MENU;

Todo esto para decirte que es muy dependiente del compilador y hay que buscar información sobre ello, y lo mejor creo yo sería en el foro de mikroC, dado que por aquí se usa poco  :?

Igualmente puede que alguno de con la tecla  ;-)

Saludos!