35 unsigned int Timeout = 0;
54 SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1);
65 unsigned char CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95};
88 SPCR &= ~((1<<SPR0) | (1<<SPR1));
89 SPSR = SPSR|(1<<SPI2X);
102 unsigned char tmp = 0xff;
103 unsigned int Timeout = 0;
138 unsigned char Byte = 0;
139 #if SPI_Mode //Routine f�r Hardware SPI
141 while(!(SPSR & (1<<SPIF))){};
144 #else //Routine f�r Software SPI
145 for (
unsigned char a=8; a>0; a--)
149 if (bit_is_set(
MMC_Read,SPI_DI) > 0)
169 #if SPI_Mode //Routine f�r Hardware SPI
171 while(!(SPSR & (1<<SPIF)))
174 #else //Routine f�r Software SPI
175 for (
unsigned char a=8; a>0; a--)
177 if (bit_is_set(Byte,(a-1))>0)
200 unsigned char cmd[] = {0x58,0x00,0x00,0x00,0x00,0xFF};
210 cmd[1] = ((addr & 0xFF000000) >>24 );
211 cmd[2] = ((addr & 0x00FF0000) >>16 );
212 cmd[3] = ((addr & 0x0000FF00) >>8 );
290 unsigned char cmd[] = {0x51,0x00,0x00,0x00,0x00,0xFF};
298 cmd[1] = ((addr & 0xFF000000) >>24 );
299 cmd[2] = ((addr & 0x00FF0000) >>16 );
300 cmd[3] = ((addr & 0x0000FF00) >>8 );
313 unsigned char cmd[] = {0x4A,0x00,0x00,0x00,0x00,0xFF};
326 unsigned char cmd[] = {0x49,0x00,0x00,0x00,0x00,0xFF};
unsigned char mmc_read_byte(void)
unsigned char mmc_write_command(unsigned char *cmd)
unsigned char mmc_read_csd(unsigned char *Buffer)
unsigned char mmc_read_cid(unsigned char *Buffer)
unsigned char mmc_write_sector(unsigned long addr, unsigned char *Buffer)
unsigned char mmc_read_sector(unsigned long addr, unsigned char *Buffer)
#define MMC_Direction_REG
void mmc_read_block(unsigned char *cmd, unsigned char *Buffer, unsigned int Bytes)
void mmc_write_byte(unsigned char Byte)