TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: El_Coach en 02 de Julio de 2005, 06:01:00

Título: MMC
Publicado por: El_Coach en 02 de Julio de 2005, 06:01:00
Hola, en mi proyecto necesito poder leer y escribir ficheros en una tarjeta de memoria MMC.
El CCS lleva una libreria para gestionar las MMC por puerto SPI pero sin un sistema de archivos ni nada, y necesito que windows pueda trabajar con los archivos generados.
Buscando encontr� por los foros de CCS una librer�a que se supone lee y escribe car�cteres en archivos de una MMC con sistema de archivos FAT16 y por puerto SPI, este es el enlace:
http://www.ccsinfo.com/forum/viewtopic.php?t=21721

Tambi�n han puesto un ejemplo, pero al compilar salen un par de errores. de tipo:

Previous identifier must be a pointer

El error sale en este trozo de c�digo:
Codigo:

#separate
int get_CID(char s)
{int i,r1;
r1=mmc_cmd(0x4A,0x00000000,16,0x00,0x99);


if (r1==0x00) goto get_token ; // we can read data payload

return(false);
get_token:
for(i=0;i<16;i++)if (SPI_READ(0xFF)==0xFE) goto read_CID; // read token $FE
return(false);
read_CID:
for (i=0;i<18;i++) s=SPI_READ(0xFF);  // <--- ERROR

return(true);
}
#separate
int get_CSD(char s)
{int i,r1;
r1=mmc_cmd(0x49,0x00000000,16,0x00,0x99);


if (r1==0x00) goto get_token ; // we can read data payload

return(false);
get_token:
for(i=0;i<16;i++)if (SPI_READ(0xFF)==0xFE) goto read_CSD; // read token $FE
return(false);
read_CSD:
for (i=0;i<18;i++) s=SPI_READ(0xFF);  // <--- ERROR

return(true);
}


La cuesti�n es que estas dos rutinas no se utilizan en todo el driver, no se para que estar�n.
Y tampoco entiendo que significa la directiva #separate, lo he le�do en el manual, pero me quedo igual.

Espero alguien me ayude a ver la luz Idea

Tambi�n espero que este hilo ayude a la gente que, como yo, est� interesado en la utilizaci�n de las tarjetas MMC.

Un saludo Sonrojado