Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: mmc карта. последний адресс считывания\записи
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
npopok
Пытаюсь прочесть последний адресс карты.Что я делаю не так?

mmcReadRegister(MMC_READ_CSD,16,buff_512);
blockLen = buff_512[5] & 0x0F; =9
mSize=(int)((buff_512[6]&0x3)<<10);
mSize|=(int)(buff_512[7]<<2);
mSize|=(buff_512[8]>>6); =3869
mSizeMult= (( buff_512[9]&0x3) << 1) |(( buff_512[10]&0x80) >> 7); =7
multiplier =blockLen + mSizeMult + 2; =18
mSize=(mSize+1)<<multiplier; =1014497280


mmcReadBlock(1014497280-512,512,buff_512); не читает
npopok
Решил проблему. С адресами все в порядке.Моя функция mmcGetXXResponse выглядела так:
......
while(i<=500)
{
response=spiSendByte(0xff);
if(response==resp)break;
i++;
}
return response;
500 просто не хватало.написал while(i<=3000)-заработало.
Новый вопрос-а если карта будет 4гига сколько надо делать попыток? как лучше написать? вариант while(spiSendByte(0xff) !=0xfe ) ; крайне нежелателен
Cyber_RAT
А почему
Цитата
вариант while(spiSendByte(0xff) !=0xfe ) ; крайне нежелателен

Вроде в спецификации такой задержки чтобы всем подошло нету. или боитесь зависнуть?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.