1 (изменено: sabir.yanin2014, 2018-01-02 15:49:01)

Тема: AHK: Микротаймеры - создание периода менее 1000 микросекунд

Продолжая тему микротаймеров, нашел работу в которой придуман еще  один  микротаймер. Его период составляет тоже около 1 миллисекунды, и я подумал возможно ли добиться еще меньшей выдержки? Попробовав решить задачу вглубь (изменение кода драйвера) я потерпел крах т.к. не хватает знания, и тогда я решил схитрить:
что если создать два таймера (и более -если нужна еще меньшая выдержка)  по 1 мс сместив их относительно друг друга на 500 мкс? Тогда частота повышается вдвое и в результате период станет 500мкс.


#SingleInstance force
#Persistent

#include CLR.ahk

asm := CLR_LoadLibrary("WaitableTimer\WaitableTimer.dll")

wt1 := asm.CreateInstance("WaitableTimer")
MyTimer1 := wt1.Create(Func("Test"), 1)
MyTimer1.Start() ;создаем первый таймер -1мс

loop 
{
++ZX
	if (ZX=1200) ;выдержка 500 мкс (кол-во циклов находим опытным путем)
	{
	ZX:=0
	Break   
	}
}	
wt2 := asm.CreateInstance("WaitableTimer")
MyTimer2 := wt2.Create(Func("Test"), 1)
MyTimer2.Start() ;через 500 микросекунд создаем второй таймер на 1 мс
return

Test(){ ;на выходе получаем частоту обращения в два раза выше(период 500 микросекунд вместо 1мс)
global 
	++DR
	if (DR=1000)
	{
	stop:=A_TickCount,DR:=0
	dT:=(stop-start)/1000
	start:=A_TickCount
	ToolTip, продолжительность периода=%dT% 
	} 
	Return 
}

^Esc::
MyTimer.Stop()
	ExitApp

P.S. Не забываем в свойствах разрешить работу драйвера.

Post's attachments

500мкс.rar 5.7 kb, 3 downloads since 2017-08-27 

You don't have the permssions to download the attachments of this post.

2

Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд

Что-то я не понимаю... Для чего нужны эти микротаймеры? Куда их пихать? Это обход стандартной задержки в ahk? ( где-то слышал, что есть стандартная задержка в 10мс что-ли..) Объясните пожалуйста.

3

Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд

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

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.