|
вопрос по командам cmd12 cmd18 mmc sd |
|
|
|
Jan 13 2008, 15:13
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Moderator: Так по каждой команде будем новую тему создавать???? Тему объединил с предыдущей. Цитата(sergey sva @ Jan 13 2008, 16:30)  интересует такой вопрос, команда непрерывного чтения cmd18 до команды cmd12, чтение будет происходить в одном секторе или подряд все адреса ? Так странный вопрос - она-же в отличие от cmd17 по жизни для чтения множества последовательных секторов предназначена. Цитата команду cmd12 посылать прям... прямо в процессе.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 13 2008, 15:55
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
отправляю команду cmd18 ,должен быть ответ R1 (0x00) получаю 0x20 ошибка адреса. Цитата unsigned int read (unsigned long adress, unsigned long len)
unsigned char cmd18[6]={0x52,0x00,0x00,0x00,0x00,0x00}; unsigned char cmd12[6]={0x4C,0x00,0x00,0x00,0x00,0x00}; unsigned char f1 = 0; unsigned int f2 = 10; //*************** if(adress & 0x01 ){cmd18[4] |= 0x01;} if(adress & 0x02 ){cmd18[4] |= 0x02;} if(adress & 0x04 ){cmd18[4] |= 0x04;} if(adress & 0x08 ){cmd18[4] |= 0x08;} if(adress & 0x10 ){cmd18[4] |= 0x10;} if(adress & 0x20 ){cmd18[4] |= 0x20;} if(adress & 0x40 ){cmd18[4] |= 0x40;} if(adress & 0x80 ){cmd18[4] |= 0x80;} //*************** if(adress & 0x0100 ){cmd18[3] |= 0x01;} if(adress & 0x0200 ){cmd18[3] |= 0x02;} if(adress & 0x0400 ){cmd18[3] |= 0x04;} if(adress & 0x0800 ){cmd18[3] |= 0x08;} if(adress & 0x1000 ){cmd18[3] |= 0x10;} if(adress & 0x2000 ){cmd18[3] |= 0x20;} if(adress & 0x4000 ){cmd18[3] |= 0x40;} if(adress & 0x8000 ){cmd18[3] |= 0x80;} //*************** if(adress & 0x010000 ){cmd18[2] |= 0x01;} if(adress & 0x020000 ){cmd18[2] |= 0x02;} if(adress & 0x040000 ){cmd18[2] |= 0x04;} if(adress & 0x080000 ){cmd18[2] |= 0x08;} if(adress & 0x100000 ){cmd18[2] |= 0x10;} if(adress & 0x200000 ){cmd18[2] |= 0x20;} if(adress & 0x400000 ){cmd18[2] |= 0x40;} if(adress & 0x800000 ){cmd18[2] |= 0x80;} //*************** if(adress & 0x01000000 ){cmd18[1] |= 0x01;} if(adress & 0x02000000 ){cmd18[1] |= 0x02;} if(adress & 0x04000000 ){cmd18[1] |= 0x04;} if(adress & 0x08000000 ){cmd18[1] |= 0x08;} if(adress & 0x10000000 ){cmd18[1] |= 0x10;} if(adress & 0x20000000 ){cmd18[1] |= 0x20;} if(adress & 0x40000000 ){cmd18[1] |= 0x40;} if(adress & 0x80000000 ){cmd18[1] |= 0x80;} adress = 1;
Сообщение отредактировал sergey sva - Jan 13 2008, 16:10
|
|
|
|
|
Jan 13 2008, 19:38
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(sergey sva @ Jan 13 2008, 20:06)  если поделитесь способом поаккуратней буду очень благодарен  В лоб: Код cmd18[4] = address; cmd18[3] = address >> 8; cmd18[2] = address >> 16; cmd18[1] = address >> 24; Не говоря о том, что можно было описать cmd18 как упакованную структуру с читаемыми именами полей нужного размера.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 13 2008, 19:45
|
Гуру
     
Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923

|
Цитата(Сергей Борщ @ Jan 13 2008, 22:38)  В лоб: Код cmd18[4] = address; cmd18[3] = address >> 8; cmd18[2] = address >> 16; cmd18[1] = address >> 24; Не говоря о том, что можно было описать cmd18 как упакованную структуру с читаемыми именами полей нужного размера. да это поаккуратней будет, благодарю
|
|
|
|
|
Jan 14 2008, 07:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Tcom @ Jan 14 2008, 09:33)  Привет, в командах CMD17 нужно указывать адрес начала сектора иначе будет ошибка 0х02, мож и в CMD18 также. Естественно да, если, конечно, Цитата не SD V2+ карточка что-бы поддерживать такую адресацию.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|