Dmitry wrote: > > hm... > any code snippet? > ~d Sure, let me know if you need more. Thanks, Garst
#ifdef _MMC_TEST int main(void) { unsigned int i; union reg16b_t reg16b; mcu_init(); spi_init(); lcd_init(); clear_display(); lcd_set_pos(0,0); get_register(MMC_SEND_CSD,®16b); print_register(®16b); print_response(0xEE); print_response(reg16b.csd.READ_BL_LEN); SPI_NONE; } #endif int get_register( unsigned char reg_cmd, union reg16b_t *reg16) { unsigned char arguments[4]; unsigned char temp25; int i; arguments[0]=0x00; arguments[1]=0x00; arguments[2]=0x00; arguments[3]=0x00; temp25=mmc_sendcmd(reg_cmd,arguments); if(temp25) { SPI_NONE; SPI_LCD_EN; lcd_write_string("GETREG"); print_response(temp25); BREAKPNT; return FALSE; } mmc_get_data((unsigned char*) reg16); return TRUE; } int mmc_get_data(unsigned char* data) { unsigned char temp25; int i ; while((temp25=mmc_get_response())==0); //if card is busy if(temp25!=0xFE) { BREAKPNT; return FALSE; } /*read the data*/ for(i=0;i<16;i++) { data[i]=spi_read(); } //CRC TOKENs spi_read(); spi_read(); return TRUE; }