|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.01.2008, 23:02 | #21 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
1. Вроде как есть виртуальная машитна ДОСа... или нет ?!?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... Последний раз редактировалось Карась; 05.01.2008 в 23:12. |
05.01.2008, 23:09 | #22 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Никакого отдельного процессора, все старое железо от станка давно выкинули, управление происходит непосредственно с компа.
Уже Чему-то научился Но этого мало
|
05.01.2008, 23:10 | #23 | |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Цитата:
2. Запускать ничего параллельно и не нужно, и так в системе есть другие задачи. 3. А правильно ли будет работать устройство, если при передаче импульсов будут "пробелы"? 4. Вот такая идея, может натолкнет на мысль... Моему знакомому однажды нужно было посылать прямоугольные импульсы по RS-232 высокой частоты. Вместо того, чтобы заводить таймер и посылать при каждом тике то 0 то 1 на линиях синхронизации, он запрограммировал RS-232 на примерно нужную ему частоту и послал целый пакет из чередующихся единичек и нулей. Таким образом получил нужную последовательность примерно нужной частоты на линии TxD. |
|
05.01.2008, 23:17 | #24 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Работать будет правильно, просто во время "пробела " двигатель будет стоять пока не придет новый импульс. Только скорость перемещения не будет соответствовать заданной.
Уже Чему-то научился Но этого мало
Последний раз редактировалось chingiz; 05.01.2008 в 23:20. |
05.01.2008, 23:26 | #25 | |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Цитата:
Думаю, на такой компромисс можно пойти: скорость двигателя не будет точно соответствовать заданной и погрешность будет определяться загрузкой процессора другими задачами, но для механического устройства, такого как двигатель, несколько десятков миллисекунд несколько раз в секунду - ИМХО мелочь. Скорость не успеет упасть заметно. PS: Ну и для вывода в порт я бы использовал драйвер GiveIO для прямого доступа к порту, так как через API - может за такой малый промежуток времени не успеть отправить, API требуют переход в режим ядра и обратно, да и сам запрос проходит через несколько слоев драйверов. Последний раз редактировалось Ins; 05.01.2008 в 23:39. |
|
06.01.2008, 00:39 | #26 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Надумывается только один выход из сложившейся ситуации. Спаять простенькую приставку на цифре. Использую кварцы можно быть уверенным в высокой точности. Блок очень простой, содержит пару микросхем. Диапазон выходной частоты высок и в зависимости от микросхем может составить пару сотен МГц. Суть проста: запускающий импульс подаётся на одновибратор, одновибратор включается на заданное время (1 сек) и тем самым включает генератор 10 кГц на 1 сек. В итоге у нас на двигатель за секунду приходит 10 000 импульсов. Меняя длительность сигнала первого генератора (тот что 1 Гц) мы меняем колво импульсов на движок. И вот когда надо переместить быстро и далеко мы пользуем эту схему... А там где медленно и близко мы передаём герцы с компа.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
06.01.2008, 19:40 | #27 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Спасибо всем что не отказали в помощи. Мной получено столько информации что все это необходимо переварить и осмыслить. Попробую всетаки что нибудь сотворить с системным таймером, хотябы ради спортивного интереса. До встречи в новой теме.
Уже Чему-то научился Но этого мало
|
06.01.2008, 20:29 | #28 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Кстати буквально несколько минут назад нашел в делфи функцию Sleep, аналог Delay в паскале, так вот при задании задержки выполнения в 1 милисекунду на моем компе получается задержка в 2 милисекунды. А в таймере при задании 1 милисекунды получается примерно 19 милисекунд. А это уже кое - что. Поэтому я все больше склоняюсь к тому что если поработать с системным таймером может что и выйдет? Как можно из Делфи поиздеваться над системным таймером? Может кто знает?
Уже Чему-то научился Но этого мало
|
06.01.2008, 21:03 | #29 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
Я ведь давал ссылку на мультимедийный таймер, тестируйте, работает намного корректнее дельфийского
Здесь подробнее http://decoding.narod.ru/api/mmtimer/mmtimer.html Обратите внимание на разницу: Системный таймер: Если обработчик таймера не успевает закончить все действия в установленный интервал, то последующие вызовы этого обработчика становятся в очередь. Это приводит к тому, что на разных компьютерах приложение работает с разной скоростью. Сама же CallBack функция вызывается в контексте основного потока. Мультимедийный таймер: Если обработчик таймера не успевает закончить все действия в установленный интервал, то последующие вызовы накапливаться не будут. Сама же CallBack функция вызывается в контексте отдельного потока. Последний раз редактировалось _Dmitry; 07.01.2008 в 10:45. |
07.01.2008, 21:46 | #30 | |
Пользователь Подтвердите свой е-майл
Регистрация: 21.05.2007
Сообщений: 88
|
Цитата:
Кстати откуда этот ММтаймер взялся в стандартной установке Делфи?
Уже Чему-то научился Но этого мало
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выполнение функции | nikleb | JavaScript, Ajax | 7 | 10.08.2008 01:49 |
указатель мыши автоматически должен совершать клик по заданному месту на экране, через промежуток времени | Deefrost | Qt и кроссплатформенное программирование С/С++ | 5 | 16.05.2008 20:25 |
Как зделать авто выполнение | Editor | Общие вопросы Delphi | 5 | 27.04.2008 21:01 |
Выполнение действия с компонентами в цикле | Ermiss | Общие вопросы Delphi | 4 | 01.11.2007 23:54 |
Выполнение действия в заданное время | WOWan234 | Помощь студентам | 6 | 02.05.2007 01:52 |