TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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
#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
-
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:
typedef void *_Ptr(void)
typedef struct{
char TipoMenu;
char *TextoMenu;
_Ptr PtrMenuSeleccion;
}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!