реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> mmc карта. последний адресс считывания\записи
npopok
сообщение Aug 13 2008, 08:12
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 4-05-08
Пользователь №: 37 271



Пытаюсь прочесть последний адресс карты.Что я делаю не так?

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); не читает
Go to the top of the page
 
+Quote Post
npopok
сообщение Aug 13 2008, 10:18
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 4-05-08
Пользователь №: 37 271



Решил проблему. С адресами все в порядке.Моя функция mmcGetXXResponse выглядела так:
......
while(i<=500)
{
response=spiSendByte(0xff);
if(response==resp)break;
i++;
}
return response;
500 просто не хватало.написал while(i<=3000)-заработало.
Новый вопрос-а если карта будет 4гига сколько надо делать попыток? как лучше написать? вариант while(spiSendByte(0xff) !=0xfe ) ; крайне нежелателен
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Aug 15 2008, 12:38
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



А почему
Цитата
вариант while(spiSendByte(0xff) !=0xfe ) ; крайне нежелателен

Вроде в спецификации такой задержки чтобы всем подошло нету. или боитесь зависнуть?

Сообщение отредактировал Cyber_RAT - Aug 15 2008, 12:39
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 10:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016