sdelkin написал(а):1) Считать показания тактового счетчика
Это что такое? Первый раз слышу. Сколькибитное там значение?
sdelkin написал(а):6) Скорость делим на 5 млн (5 микросекунд), определяем количество тактов
не на 5 млн, а на 200 000 (5 мкс = 1/200 000)
sdelkin написал(а):7) Делаем пустой цикл для паузы, или что-то другое количеством тактов из п.6 (длительность работы этих тактов будет 5мкс)
Вот пустой цикл, к сожалению не делает паузу, а создает 100% загрузку процессора - в этом и есть главная проблема.
В DOS каких проблем не возникает - загрузили процессор своим циклом и вперед отсчитывать временные интервалы. Потому TurboCNC и написан под DOS/ и при этом работает очень стабильно.
sdelkin написал(а):600 тактов необходимо для паузы 5 мкс, при нашей текущей скорости 3 ггц.
Даже если закрыть глаза на то, что отсчитать 600 тактов не подвешивая при этом Windows практически невозможно, я все же говорил о другом - что произойдет, если во время этого отсчета процессор изменит свою частоту?
sdelkin написал(а):Операцию расчета повторять с необходимой периодичностью (1 раз в секунду, пол секунды в зависимости от требований)
Драйвер Mach3 делает это 500 раз в секунду, но, оказывается, что и этого, порой, недостаточно.
sdelkin написал(а):График выше это реальный случай с мачем и ЛПТ портом? Или Вы его привели просто так?
Это реальная осциллограмма снятая с моего LPT под управлением Mach3, а зеленый график - тот же управляющий сигнал, но после моего контроллера (он устраняет провалы, приводящие к "ударам" при движении и срывам моторов).
sdelkin написал(а):Почему спрашиваю, просто задержка генератора на 20-ти милионную часть секунды погоды не строит (я пришел к таким временным выводам согласно графика)
Там виден провал в 420 мкс (1/2380 сек) - это довольно много - пропущено 18 шагов. Если бы станок работал с микрошагом 1/8 - это был бы удар смещающий шаговый мотор более чем на 2 полных шага, что неминуемо привело бы к срыву.
На микрошаге 1/32 может быть и пронесло бы...
Вот еще аналогичный график:

С изменением частоты это не связано - это просто подтормаживания неизвестно по каким причинам.
В моменты изменения частоты картина немного другая - сначала пропуск, потом изменяется интервал, а через некоторое время опять возвращается драйвером Mach3 в норму.
К сожалению осциллограммы не осталось.
Отредактировано michael-yurov (29-06-2014 02:07:31)