Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обмен данными через USB 
:(
    Опции темы
ГЫнок
Дата 25.3.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Здравствуйте!
Необхдимо написать программу которая смоглабы работать с USB, при этом обращаться к нему не менее 1000 раз в секунду. Так вот программа есть но Таймер не позволяет обеспечить это условие...

Как это можно реализовать?
PM MAIL   Вверх
mrbrooks
Дата 25.3.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(ГЫнок @  25.3.2009,  15:22 Найти цитируемый пост)
Здравствуйте!

Здоров!

Цитата(ГЫнок @  25.3.2009,  15:22 Найти цитируемый пост)
Необхдимо написать программу которая смоглабы работать с USB, при этом обращаться к нему не менее 1000 раз в секунду. Так вот программа есть но Таймер не позволяет обеспечить это условие...


камрад. судя по всему у тебя и строчки кода нет. в этом случае рекомендую покурить книжку Павлика Агурова "Практика программирования USB" и в центр помощи.  Если же код есть - выкладывай. 
PM MAIL   Вверх
Alca
Дата 25.3.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Код

void __fastcall TForm1::Button5Click(TObject *Sender)
{
LARGE_INTEGER Frequency; // address of current frequency
 LARGE_INTEGER Start; // address of Start Time 
 LARGE_INTEGER Stop; // address of Stop Time 
 LARGE_INTEGER dTime; // address of 
 //Получим количество отсчётов таймера в одной секунде 
bool id=QueryPerformanceFrequency(&Frequency); 
  Label9->Caption="id="+IntToStr(id);
  //Отобразим количество отсчётов таймера в одной секунде 
  if(id)Label9->Caption =" f="+IntToStr(Frequency.QuadPart);
  //Вычислим количество отсчётов таймера в 10 миллисекундах
  dTime.QuadPart=Frequency.QuadPart*300.e-6;
 //Запускаем отсчёт заданного интервала времени 
 QueryPerformanceCounter(&Start); 
 do 
 { 
  QueryPerformanceCounter(&Stop); 
 }while(Stop.QuadPart-Start.QuadPart < dTime.QuadPart); 
 //Отобразим интервал полученного времени в секундах 
 Label10->Caption =" d="+FloatToStr(double(Stop.QuadPart-Start.QuadPart)/Frequency.QuadPart);
}



--------------------
PM WWW ICQ Skype Jabber   Вверх
ГЫнок
Дата 25.3.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Я наверна невнятно выразился, частенько бывает  smile .
Суть проблемы, подробней, такова: Имеется программа, которая обмнеивается данными через USB с МК PIC18F4550. Вот каждое обращение к МК происходит по собитию от таймера и интервал стоит 250, но при буфере 64 байта это прост нериально маленькая скорость... Стандартный таймер при всем желании не потянет интервал 1...
Т.е. необходимо чтобы 1000 раз в секунд вызывался метод, который передавал и получал бы по 64 байта  smile ... Воть...
PM MAIL   Вверх
Alca
Дата 25.3.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



1000 раз в секунду это 1 раз в 1 миллисекунду? smile 

Это сообщение отредактировал(а) Alca - 25.3.2009, 17:31


--------------------
PM WWW ICQ Skype Jabber   Вверх
mrbrooks
Дата 25.3.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(ГЫнок @  25.3.2009,  17:24 Найти цитируемый пост)
Т.е. необходимо чтобы 1000 раз в секунд вызывался метод, который передавал и получал бы по 64 байта  smile ... Воть... 

В маздае это не реально.
PM MAIL   Вверх
Alca
Дата 25.3.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Цитата

В маздае это не реально.

Расшифруй


--------------------
PM WWW ICQ Skype Jabber   Вверх
Klin
Дата 25.3.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(Alca @  25.3.2009,  18:40 Найти цитируемый пост)
ЦитатаВ маздае это не реально.Расшифруй

Начальника! роботать так бистро не можим. Винда пахать питатца, винда капут пришла, не тянет за адин милисекунда 64 бита.


Есть занимательный Sleep, в котором задается интервал в милисекундах, но боюсь, что маздай загнется от такого "что за ...".


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
mrbrooks
Дата 26.3.2009, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Klin,  smile 

Цитата(Alca @  25.3.2009,  17:40 Найти цитируемый пост)
Расшифруй 


В Windows это не реально.
PM MAIL   Вверх
LionMdS
Дата 30.3.2009, 02:38 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 28.3.2009

Репутация: нет
Всего: нет



А через несколько потоков??? то в полне даже реально!!!
токо организацию надо правильно сделать чтобы потоки друг друга не повторяли!!!

Добавлено через 10 минут и 44 секунды
А вообще максимум скорости можно выжать только на низкоуровневых языках типа асамблера...
PM MAIL   Вверх
mrbrooks
Дата 30.3.2009, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(LionMdS @  30.3.2009,  02:38 Найти цитируемый пост)
А через несколько потоков??? то в полне даже реально!!!
токо организацию надо правильно сделать чтобы потоки друг друга не повторяли!!!


 smile 

Цитата(LionMdS @  30.3.2009,  02:38 Найти цитируемый пост)
А вообще максимум скорости можно выжать только на низкоуровневых языках типа асамблера... 

Тебя не проведешь  smile 
PM MAIL   Вверх
Dem_max
Дата 30.3.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 14
Всего: 39



LionMdS, 
Цитата

А через несколько потоков??? то в полне даже реально!!!

Не смешите наши тапочки.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.