реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Алгоритм управления шаговым двигателем ?
rihkov
сообщение Feb 2 2006, 19:38
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Нужен пример, алгоритм управления шаговым двигателем?
Я не разу не видел и не знаю как пишется 100% оптимальный, проверенный временем алгоритм управления шаговым двигателем.
Я пишу свои алгоритмы управления, но кажется что всё должно быть совсем не так?
[code]
{
SetPortVal(0x378,0,1);
for(; i < 5; i++)
{
if(i == 1)
{
SetPortVal(0x378,1,1);
Sleep(100);
}
else
if(i == 2)
{
SetPortVal(0x378,2,1);
Sleep(100);
}
else
if(i == 3)
{
SetPortVal(0x378,4,1);
Sleep(100);
}
else
if(i == 4)
{
SetPortVal(0x378,8,1);
Sleep(100);
i = 0;
}
}
}
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 3 2006, 05:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Подскажите алгоритм переключения фаз вашего ШД.
И , что у вас за функция? Устанавливает соответствующий Bit в байте?
Go to the top of the page
 
+Quote Post
Wiener
сообщение Feb 3 2006, 06:45
Сообщение #3


Участник
*

Группа: Почетный участник
Сообщений: 42
Регистрация: 30-01-06
Из: Москва
Пользователь №: 13 758



Посмотри на www.platan.ru в разделе "документация" есть подшивки журнала "Схемотехника", там есть серия статей по работе с ШД.
Go to the top of the page
 
+Quote Post
fantasy
сообщение Feb 3 2006, 11:23
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 17-09-05
Из: Kirov
Пользователь №: 8 659



см. http://www.cs.uiowa.edu/~jones/step/ - классика по subj. Далее советую присмотреться к апнотам от STM на различные драйвера.

А в общем не существует "100% оптимальный, проверенный временем алгоритм управления шаговым двигателем", т.к. ШД с точки зрения теории управления достаточно сложный объект, т.к. как минимум обладает механическим резонансом на некотором _рабочем_ диапазоне скоростей и ярко выраженной зависимостью момента двигателя от его скорости. Существуют и другие проблемы, которые также приходится решать в каждой задаче индивидуально, и зачастую они "растут" от упомянутых мной проблем. Поэтому даже для казалось-бы похожих задач приходиться подгонять "универсально-отлаженный" алгоритм управления. Так что как - учите сначала теорию.
з.ы.: ничего личного...

Сообщение отредактировал fantasy - Feb 3 2006, 11:36


--------------------
В голове слышался грохот: рушились грандиозные планы...
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 3 2006, 23:13
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(rihkov @ Feb 2 2006, 21:38) *
Я пишу свои алгоритмы управления, но кажется что всё должно быть совсем не так?


Для 4-х фазника (без общей земли) все именно так, как Вы пишете.
В обратную сторону - 8 4 2 1.
Go to the top of the page
 
+Quote Post
dm_mur
сообщение Feb 4 2006, 08:51
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 255
Регистрация: 10-03-05
Из: Омск
Пользователь №: 3 195



Цитата(rihkov @ Feb 2 2006, 22:38) *
Нужен пример, алгоритм управления шаговым двигателем?
Я не разу не видел и не знаю как пишется 100% оптимальный, проверенный временем алгоритм управления шаговым двигателем.
Я пишу свои алгоритмы управления, но кажется что всё должно быть совсем не так?
[code]
{
SetPortVal(0x378,0,1);
for(; i < 5; i++)
{
if(i == 1)
{
SetPortVal(0x378,1,1);
Sleep(100);
}
else
if(i == 2)
{
SetPortVal(0x378,2,1);
Sleep(100);
}
else
if(i == 3)
{
SetPortVal(0x378,4,1);
Sleep(100);
}
else
if(i == 4)
{
SetPortVal(0x378,8,1);
Sleep(100);
i = 0;
}
}
}


Неправильно. Для 4-фазника(типа ШД-4) нужно 1-2-3-6-4-С-9, т.е. чтобы ток протекал то через 1 то через 2 обмотки двигателя. Для 6-фазника (типа ШД-5) включают то 2 то 3 обмотки.
Go to the top of the page
 
+Quote Post
rihkov
сообщение Feb 4 2006, 11:59
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Я управляю таким способом ДШИ 200-1-1 smile3046.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 5 2006, 00:39
Сообщение #8


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(dm_mur @ Feb 4 2006, 10:51) *
Неправильно. Для 4-фазника(типа ШД-4) нужно 1-2-3-6-4-С-9, т.е. чтобы ток протекал то через 1 то через 2 обмотки двигателя.


Странно, управляю именно таким способом (8421) через КМОП ключи 4-х фазниками EM-327/328 (epson). Подключение вида A-B-A'-B'.
Go to the top of the page
 
+Quote Post
dm_mur
сообщение Feb 6 2006, 04:30
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 255
Регистрация: 10-03-05
Из: Омск
Пользователь №: 3 195



Цитата(defunct @ Feb 5 2006, 03:39) *
Странно, управляю именно таким способом (8421) через КМОП ключи 4-х фазниками EM-327/328 (epson). Подключение вида A-B-A'-B'.


Пожалуй я погорячился, сказав "неправильно". Режим 8-4-2-1 - это полношаговый режим с одновременным включением одной фазы. Используется редко, т.к. в этом режиме не может быть получен полный момент, двигатель наиболее подвержен резонансу. Чаще используется полушаговый режим (1-3-2-6-4-С-9)- как раз тот, что я описал. Позволяет получить в два раза более мелкий шаг, чем полношаговый (8-4-2-1). Если же необходим полношаговый режим, то используют одновременное включие 2-х фаз (3-6-С-9) - получается полный момент и устойчивость к резонансу
Go to the top of the page
 
+Quote Post
BVU
сообщение Feb 6 2006, 09:08
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



А по моемому в управлении шаговым двигателем одно из серьезных ограничений накладивается параметром, как частота преемственности. Которая и обуславливает максимальную скорость позиционирования. Не превышая этого ограничения все должно работать в соответствии с теорией и паспортными данными ШД.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
dm_mur
сообщение Feb 6 2006, 09:18
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 255
Регистрация: 10-03-05
Из: Омск
Пользователь №: 3 195



Цитата(BVU @ Feb 6 2006, 12:08) *
А по моемому в управлении шаговым двигателем одно из серьезных ограничений накладивается параметром, как частота преемственности. Которая и обуславливает максимальную скорость позиционирования. Не превышая этого ограничения все должно работать в соответствии с теорией и паспортными данными ШД.


Вы что-то путаете.

Во первых, не преемственность а приемистость. Это скорость (или частота импульсов), до которой двигатель можно разогнать скачком. Если нужно крутить быстрее - нужно разгонять (останавливать) плавно. Преемистость - не есть максимальная скорость.
Go to the top of the page
 
+Quote Post
BVU
сообщение Feb 6 2006, 10:15
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(dm_mur @ Feb 6 2006, 12:18) *
Вы что-то путаете.

Во первых, не преемственность а приемистость. Это скорость (или частота импульсов), до которой двигатель можно разогнать скачком. Если нужно крутить быстрее - нужно разгонять (останавливать) плавно. Преемистость - не есть максимальная скорость.

Пардон, оговорился...
Именно это и хотел сказать, но получилось - коряво (давно данной темы не 'касался'). Приеместость верхний предел, инерционность - нижний (разгон/торможение). Исходя из этого алгоритм управления остается единым практически для всех ШД, отличие лишь будет заключаться во временах (разгон/торможение).


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
ivan2006
сообщение Feb 6 2006, 13:43
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 8-01-06
Из: Петербург
Пользователь №: 12 944



Уважаемые Господа,

может кто-нибудь сталкивался с проблемой быстрой раскрутки шаговых двигателей.
А именно:

1. Интересует по какому закону нужно изменять паузы (Sleep(x), x=x(n)), чтобы достичь нужной скорости за наиболее короткий промежуток времени.

2. Должен ли разгон быть равноускоренным, хотя бы в первом приближении?

3. Как влияет использование дробных шагов (не 1-3-2-..., а более мелких) на приемистость двигателя?

Двигатели - импортные, небольшой мощности, типа FL42STH.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 6 2006, 17:42
Сообщение #14


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(ivan2006 @ Feb 6 2006, 15:43) *
Уважаемые Господа,

может кто-нибудь сталкивался с проблемой быстрой раскрутки шаговых двигателей.
А именно:

1. Интересует по какому закону нужно изменять паузы (Sleep(x), x=x(n)), чтобы достичь нужной скорости за наиболее короткий промежуток времени.

2. Должен ли разгон быть равноускоренным, хотя бы в первом приближении?

3. Как влияет использование дробных шагов (не 1-3-2-..., а более мелких) на приемистость двигателя?

Двигатели - импортные, небольшой мощности, типа FL42STH.

Я, в-общем-то, небольшой спец по ШД, но попробую поделиться опытом.

1. Закон зависит в общем случае от способа запитывания обмоток - постоянным напряжением или током. В своих изделиях (в блоках печатающих механизмов, как правило двигатели со схемой 2-2) мы обычно применяем мосты со стабилизаторами тока. В этом случае неплохо работает аппроксимация постоянной мощности на валу - скорость растет по корню квадратному от времени. Соответственно шаги должны быть синхронизированы со скоростью. Если же питать обмотки фиксированным напряжением (более простая схема драйверов) - то нужно учитывать ЭДС наводимую сердечником, увеличивающуюся со скоростью и уменьшающую эффективное напряжение и ток (следовательно прикладываемую мощность для разгона).

2. Не обязательно. В-общем, для равноускоренного разгона нужно наращивать мощность вкачиваемую в обмотки по квадрату, либо изначально иметь достаточный запас мощности - что не способствует быстрейшему разгону. Наибыстрейший разгон - изначально прикладываем максимум возможной мощности и синхронизируемся с нарастаемой скоростью.

3. Из нашего практического опыта - положительно - в том смысле, что фаза меняется более плавно,
двигателю легче стартовать - момент изменяется менее скачкообразно, но при дроблении обычно прикладывается меньшая мощность - время разгона растет - нужно больше шагов. Еще положительный момент дробления шагов - снижение механического шума и вибраций, иногда значительное.

Есть еще такая проблема - когда двигатель уже разогнан и вышел на режим, то очень желательно поддерживать длительность шагов постоянной - разброс не более 5%. Например частота шагов 4 кГц - это 250 мкс, для медленных процессоров и с неудачно написанными обработчиками прерываний довольно легко выйти за предел 5% (12.5 мкс) - тогда на двигателе может возникнуть "помпаж" и вплоть до остановки. Конечно, тут речь идет о режимах и скоростях недостигаемых при простом "старте с места".

Иногда еще полезно учитывать величину и изменения нагрузки - например, приходилось корректировать разгон в зависимости от количества чернил в струйной головке - масса прилично различалась, приходилось это учитывать. Потом, правда, просто умощнили двигатель и забили на это smile.gif
Go to the top of the page
 
+Quote Post
ivan2006
сообщение Feb 6 2006, 19:43
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 8-01-06
Из: Петербург
Пользователь №: 12 944



2 VslavX
Большое спасибо за ответ.

Да, с равноускоренным разгоном я ошибся.
Сейчас прикинул на бумажке, действительно если нагрузка инертная, при постоянной мощности - паузы должны менятся как обратный квадратный корень. А если как в нашем случае - с постоянным напряжением и наличием индуктивности обмоток то как обратный кубический корень. Оба вроде бы должны быстро вычислятся с помощью сложения-умножения.

Со стабильностью шагов, думаю проблем не возникнет - планируем поставить ПЛИС с такт. частотой 100МГц, и тогда никаких прерываний, загруженных процессоров и т.п. smile.gif

А вот вы написали про синхронизацию шагов со скоростью - это как?
Вообще - как можно отслеживать вращение? т.е. нужно делать какой-то механический энкодер, или можно просто смотреть на какой-нибудь сдвиг тока по фазе?
Go to the top of the page
 
+Quote Post
rihkov
сообщение Feb 6 2006, 19:52
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Этот алгоритм который я приводил в самом начале работает с перебоями, я проверял длительность импульсов на LPT логическим анализатором, и всё работает в разнобой, то один импульс длиннее других то два, и т.п.
Переделал вот так:

Код
while(a)
   {
      
       SetPortVal(0x378,1,1);
       Sleep(valstep);

       SetPortVal(0x378,2,1);
       Sleep(valstep);

       SetPortVal(0x378,4,1);
       Sleep(valstep);

       SetPortVal(0x378,8,1);
       Sleep(valstep);

   }


И установил режим порта в SPP , работает один к одному (тоесть все импульсы одинаковые), но теперь проблема с изминением частоты ( с задержкой Sleep(valstep)wink.gif, какое минимальное значение задержки можно задать с использованием Sleep() ?
Если можно приведите пример своих алгоритмов по работе с ШД ?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 7 2006, 08:21
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(ivan2006 @ Feb 6 2006, 22:43) *
2 VslavX
Большое спасибо за ответ.

Да, с равноускоренным разгоном я ошибся.
Сейчас прикинул на бумажке, действительно если нагрузка инертная, при постоянной мощности - паузы должны менятся как обратный квадратный корень. А если как в нашем случае - с постоянным напряжением и наличием индуктивности обмоток то как обратный кубический корень. Оба вроде бы должны быстро вычислятся с помощью сложения-умножения.

Со стабильностью шагов, думаю проблем не возникнет - планируем поставить ПЛИС с такт. частотой 100МГц, и тогда никаких прерываний, загруженных процессоров и т.п. smile.gif

А вот вы написали про синхронизацию шагов со скоростью - это как?
Вообще - как можно отслеживать вращение? т.е. нужно делать какой-то механический энкодер, или можно просто смотреть на какой-нибудь сдвиг тока по фазе?

По поводу постоянной мощности на валу. Это правильно не всегда. Вот при малой скорости мощность ограничивается максимальной силой (током) в обмотке. Поэтому при небольших скоростях получается сам собой режим постоянного ускорения.
А под синхронизацией автор подразумевал, наверное, зависимость ускорения от текущей скорости. Иными словами - ускорение x скорость = const
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 7 2006, 09:20
Сообщение #18


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(ivan2006 @ Feb 6 2006, 21:43) *
А вот вы написали про синхронизацию шагов со скоростью - это как?

Когда-то давно я "для себя" принял модель ШД в виде этакого линейного ускорителя заряженных частиц. То есть полюс сердечника ("частица") последовательно проходит полюса статора ("кольца ускорителя"). И полюса статора должны менять фазу синхронно с прохождением сердечника, чтобы получилось ускорение. Поскольку расстояние между полюсами одинаковое, то чем быстрее движется сердечник, тем чаще надо изменять фазу. Вот и все что я имел ввиду под синхронизацией - длительность шага должна быть обратно пропорциональна текущей скорости.

Цитата(ivan2006 @ Feb 6 2006, 21:43) *
Вообще - как можно отслеживать вращение? т.е. нужно делать какой-то механический энкодер, или можно просто смотреть на какой-нибудь сдвиг тока по фазе?

Отслеживать, конечно, можно (правда практически мне этого делать не приходилось). Но ШД хороши именно тем что если вы соблюдаете режимы, то всегда можно точно (+-люфт) сказать положение двигателя.
Посмотрите, например, любой ударный или струйный принтер Epson - головки обычно на ШД-приводе и только один датчик (иногда - два) крайнего положения. И при печати и смене направления движения головы эти датчики далеко не на каждый проход задействуются (потому как - время надо тратить - скорость печати упадет) - то есть точность позиционирования сохраняется и достаточно высокая - 150-300dpi по крайней мере).
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 7 2006, 09:43
Сообщение #19


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Tanya @ Feb 7 2006, 10:21) *
По поводу постоянной мощности на валу. Это правильно не всегда. Вот при малой скорости мощность ограничивается максимальной силой (током) в обмотке. Поэтому при небольших скоростях получается сам собой режим постоянного ускорения.

Конечно не всегда. Это очень приблизительная аппроксимация и много чего не учитывает - например, рост механического сопротивления сил трения с ростом скорости.
А если ток с самого начала (в покое) ограничивается омическим сопротивлением обмоток - то ни о какой стабилизации тока и режиме постоянной мощности речи не идет. У нас "в режиме разгона при постоянной мощности" типовая ситуация - 8..12 вольтовый двигатель запитывается через мост с чоппером, который питается от 40..50V, и тогда все нормально - ток ограничивается именно стабилизатором. Да еще этот ток стабилизатора обычно управляется, минимум две-три ступени "удержание-номинал-взлетный режим", так что получается быстро, экономично и двигатели не греются. Правда, чипы управления обычно дорогие ($3-$10), так что такие схемы применяются не всегда.
Вообще, в последнее время, "нормальные" производители механизмов, которые номинально предполагают разгон (а не старт-стоп с места) прикладывают таблички разгона-торможения - если интересно - через недельку (как пойду на работу) могу закинуть такую табличку изменения шагов в процентах от номинала при разгоне. Там разгон до скоростей раза в 4 превышающих старт-стопные
(хотя, это, конечно, зависит от двигателя/нагрузки).
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 8 2006, 00:03
Сообщение #20


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(rihkov @ Feb 6 2006, 21:52) *
какое минимальное значение задержки можно задать с использованием Sleep() ?


Sleep() - 1ms минимальная не гарантированная задержка. В Windows она может затянуться на несколько минут, т.к. в системе есть потоки с более высоким приоритетом чем поток вашей программы.
На время тестирования закрывайте все приложения.
Go to the top of the page
 
+Quote Post
rihkov
сообщение Feb 8 2006, 07:52
Сообщение #21


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Цитата
Sleep() - 1ms минимальная не гарантированная задержка. В Windows она может затянуться на несколько минут, т.к. в системе есть потоки с более высоким приоритетом чем поток вашей программы.


Вся проблема заключается именно в этом, самая малая (ощутимая) задержка 15мс , а если поставить 1мс то результат тот же что и при 15мс. Как задать более меньшую задержку, есть другие способы ?
Go to the top of the page
 
+Quote Post
BVU
сообщение Feb 8 2006, 07:57
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Возможно полезна будет ссылка:
http://kazus.ru/shemes/showpage/0/843/1.html


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 8 2006, 09:26
Сообщение #23


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(rihkov @ Feb 8 2006, 09:52) *
Цитата

Sleep() - 1ms минимальная не гарантированная задержка. В Windows она может затянуться на несколько минут, т.к. в системе есть потоки с более высоким приоритетом чем поток вашей программы.


Вся проблема заключается именно в этом, самая малая (ощутимая) задержка 15мс , а если поставить 1мс то результат тот же что и при 15мс. Как задать более меньшую задержку, есть другие способы ?

Можно использовать функцию QueryPerformanceCounter. В приложении - исходники простых функций задержек на указанное число милли- и микросекунд для Win32 и VC6. Единственное что - Win32 - вытесняющая многозадачность, поэтому функции гарантируют только что пройдет _минимум_ указанного времени. Несколько повышает точность измерения интервалов поднятие приоритета потока. Но вообще, если Вам надо точно управлять ШД, то про Win32 лучше забыть.
Go to the top of the page
 
+Quote Post
rihkov
сообщение Feb 10 2006, 20:05
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Уважаемый "VslavX" вы присоеденили бытый архив!
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 11 2006, 09:19
Сообщение #25


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(rihkov @ Feb 10 2006, 22:05) *
Уважаемый "VslavX" вы присоеденили бытый архив!

Да вроде бы - нормальный архив. Только что скачал и без проблем распаковал на другом компьютере (не на том с которого отправлял). Winrar - версия 3.0.
Ну держите тогда в развернутом виде.
(При copy/paste в текст сообщения (как из Far так и VC) чего-то кракозяблятся русские комментарии sad.gif - так что снова попробую аттач) Любопытно, что файл с расширением ".c" почему-то приаттачить не получается - переименовал в ".txt", получилось. Сплошные глюки, однако sad.gif

Сообщение отредактировал VslavX - Feb 11 2006, 09:26
Go to the top of the page
 
+Quote Post
dronT78
сообщение Feb 12 2006, 17:04
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 19-11-05
Из: dront78@jabber.snc.ru
Пользователь №: 11 092



По поводу точности управления

1. Sleep согласно Posix определяет что задержка не может быть
меньше указаного значения, но может быть сколь угодно больше smile.gif

2. Windows не Posix-совместимая система так что дела еще хуже

3. Есть интересная статья Разгон и торможение Windows NT

4. QueryPerformanceCounter прекрасная весчь как раз показывает реальное время выполнения Sleep - на APIC ядрах задержки кратны 15мс, при выключенном APIC - 10мс

5. Тестовый код для таймера можно утянуть здесь

И не забудьте что даже если поток один - он все равно переключается раз в 15 (10?) мсек и когда включится дальше - знает только Bill Gates smile.gif

P.S. Есть однако попытки противостоять злобным буржуям

Будут успехи - пишите!

Сообщение отредактировал dronT78 - Feb 12 2006, 17:12


--------------------
Сколько волка не корми - слон все равно больше.
Go to the top of the page
 
+Quote Post
INT1
сообщение Feb 13 2006, 05:37
Сообщение #27


deleted
****

Группа: Свой
Сообщений: 555
Регистрация: 28-08-05
Пользователь №: 8 024



Динамические х-стики ШД от FLМ для различных режимов можно посмотреть на сайте производителя:
http://www.fullingmotor.com/
есть полезная инф. на :
http://www.electroprivod.ru

Сообщение отредактировал INT1 - Feb 13 2006, 05:55
Go to the top of the page
 
+Quote Post
dronT78
сообщение Feb 14 2006, 16:45
Сообщение #28


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 19-11-05
Из: dront78@jabber.snc.ru
Пользователь №: 11 092



Поглядите еще связку
timeBeginPeriod
timeEndPeriod
Минимальное значение разрешающей способности 1 мс
реально - зависит от операционки и определяется через timeGetDevCaps
High Precision Event Timers поддерживаются только в XP
Вот ссылка на Microsoft
У меня более менее правильные результаты показывает при установке
timeBeginPeriod(1) начиная с 3 мсек (Sleep(3)) с погрешностью до 1 мсек в большую сторону
при тестах на AMD Athlon 64 3700+ WinXP SP2 и отсутствии загрузки другими процессами

Сообщение отредактировал dronT78 - Feb 14 2006, 17:01


--------------------
Сколько волка не корми - слон все равно больше.
Go to the top of the page
 
+Quote Post
Stanley
сообщение Mar 9 2006, 09:21
Сообщение #29





Группа: Новичок
Сообщений: 3
Регистрация: 5-09-05
Пользователь №: 8 240



на самом деле Тут еще можно посмотреть полезную инфу по шаговым двигателям....переодически добавляют что-то новое!
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01664 секунд с 7
ELECTRONIX ©2004-2016