Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

LPC2144. Никак не пойму, как на IN - транзакцию (EP0) ответить NAK'ом ? (+)

Отправлено Igor_Koval 26 июля 2009, г. 21:19


Просто не заполнять буфер, но выполнить "validate packet" ? Т.е.,:


//Посылка NAK в ответ на IN - транзакцию
//Вход: EPNum: Endpoint Number <=> EPNum.0..3: Лог. точка, EPNum.7: Направление (IN <=> 1)
void USB_WriteEP (unsigned int EPNum, unsigned char *pData, unsigned int cnt)
{
USBCtrl = ((EPNum & 0x0F) << 2) | 0x00000002;

USBTxPLen = 0;

//Эти строки закомментированы, т.к. просто нет данных для передачи,
//и поэтому нужно ответить "NAK":
/*
for (n = 0; n < (cnt + 3) / 4; n++) {USBTxData = *((__packed unsigned int *)pData);
pData += 4;
}
*/
USBCtrl = 0;
//Эта строка закомментирована по той же причине:
/*
n=((((EPNum & 0x7f) << 1) + 1) << 16);
*/
WrCmd(0x00000500 | n);
WrCmd(0x00FA0500);
//И эта строка не нужна:
return (cnt);
}


Подскажите, пожалуйста, а то в документации это очень туманно описано ...


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru