Seguimos con las mismas....
He visto 2 cosas, si activas el debugg en c18 te da error por los if, que no tienes puesto ifdef.
Y lo otro, ejecutando paso a paso, veo que al iniciar la tarjeta cuando termina el InitSPI salta al inicio de la función de iniciar la tarjeta. Y nunca llega a enviar el printf("\r\n--> Se inicia sincronizacion\r\n");
Las sd y mmc son mi unicornio, definitivamente....