Artem_Gusev 0 14 июня, 2008 Опубликовано 14 июня, 2008 · Жалоба Ребя помогите плиз, надо получать данные с АЦП с 8ми каналов, взял готовое решение от Microchip , Отправляю запрос - получаю ответ, работает как часики , проблема в скорости очень медленно откудато задержка в 15 млсек...Смотрел USBLizer Помогите плз разобраться...Большое СПС... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
r_dot 0 15 июня, 2008 Опубликовано 15 июня, 2008 · Жалоба ... очень медленно откудато задержка в 15 млсек... Это такт обмена пакетами для USB1. Работаешь в режиме Bulk? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 15 июня, 2008 Опубликовано 15 июня, 2008 · Жалоба Это такт обмена пакетами для USB1. Работаешь в режиме Bulk? Один такт обмена для USB1 равен 1мс. Но за это время можно послать данные только в одну сторону (за исключением Control pipe, по которой можно успеть получить ответ с том же 1мс фрейме). А 15 мс - это задержки Винды, причем, это еще мало, обычно бывает 20-30 мс. Если по bulk отправлять запрос, а потом ждать ответа, то такие задержки и следует ожидать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artem_Gusev 0 15 июня, 2008 Опубликовано 15 июня, 2008 (изменено) · Жалоба Один такт обмена для USB1 равен 1мс. Но за это время можно послать данные только в одну сторону (за исключением Control pipe, по которой можно успеть получить ответ с том же 1мс фрейме). А 15 мс - это задержки Винды, причем, это еще мало, обычно бывает 20-30 мс. Если по bulk отправлять запрос, а потом ждать ответа, то такие задержки и следует ожидать. Да да так и вышло, все дело в винде, запрос ответ получаю в течении 1млсек. а вот между задержа из-за того что таймер не может в винде быстрее срабатывать, как реализовать по другому???... если не сложно подскажите..программирую на Buildere C++ Изменено 15 июня, 2008 пользователем Artem_Gusev Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 15 июня, 2008 Опубликовано 15 июня, 2008 · Жалоба как реализовать по другому???... Трудно что-то советовать, если неизвестно, что вы хотите. Непонятно, зачем вы вообще посылаете этот запрос. Сам факт чтения данных из пайпа уже является запросом. Пусть ваши АЦП все время ведут преобразование, а результаты ваша прога может посылать в PC безо всяких специальных запросов, до тех пор, пока может посылать (т.е. пока буфер не полон). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artem_Gusev 0 15 июня, 2008 Опубликовано 15 июня, 2008 · Жалоба Трудно что-то советовать, если неизвестно, что вы хотите. Непонятно, зачем вы вообще посылаете этот запрос. Сам факт чтения данных из пайпа уже является запросом. Пусть ваши АЦП все время ведут преобразование, а результаты ваша прога может посылать в PC безо всяких специальных запросов, до тех пор, пока может посылать (т.е. пока буфер не полон). void ServiceRequests(void) { byte index; OpenADC(ADC_FOSC_4 & ADC_RIGHT_JUST & ADC_12_TAD, ADC_INT_OFF & ADC_REF_VDD_VSS ,0b0000); SetChanADC(ADC_CH0); Delay10TCYx(5); ReadPOT(); dataPacket._byte[0] = ADRESL; dataPacket._byte[1] = ADRESH; SetChanADC(ADC_CH3); Delay10TCYx(5); ReadPOT(); dataPacket._byte[2] = ADRESL; dataPacket._byte[3] = ADRESH; SetChanADC(ADC_CH4); Delay10TCYx(5); ReadPOT(); dataPacket._byte[4] = ADRESL; dataPacket._byte[5] = ADRESH; SetChanADC(ADC_CH8); Delay10TCYx(5); ReadPOT(); dataPacket._byte[6] = ADRESL; dataPacket._byte[7] = ADRESH; SetChanADC(ADC_CH9); Delay10TCYx(5); ReadPOT(); dataPacket._byte[8] = ADRESL; dataPacket._byte[9] = ADRESH; SetChanADC(ADC_CH10); Delay10TCYx(5); ReadPOT(); dataPacket._byte[10] = ADRESL; dataPacket._byte[11] = ADRESH; SetChanADC(ADC_CH11); Delay10TCYx(5); ReadPOT(); dataPacket._byte[12] = ADRESL; dataPacket._byte[13] = ADRESH; SetChanADC(ADC_CH12); Delay10TCYx(5); ReadPOT(); dataPacket._byte[14] = ADRESL; dataPacket._byte[15] = ADRESH; CloseADC(); if(!mUSBGenTxIsBusy()) { USBGenWrite((byte*)&dataPacket,16); }//end if }//end ServiceRequests Это у меня в МК.... как обрабатывать данные со стороны РС ..?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться