<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12951&amp;type=atom" />
	<updated>2017-09-02T06:43:35Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12951</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119101#p119101" />
			<content type="html"><![CDATA[<p>Не важно зачем, у многих пользователей возникает амбиция создать цикл с минимальной задержкой - вот вам пока что минимальная - дерзайте.</p>]]></content>
			<author>
				<name><![CDATA[belyankin12]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34408</uri>
			</author>
			<updated>2017-09-02T06:43:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119101#p119101</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=119096#p119096" />
			<content type="html"><![CDATA[<p>Что-то я не понимаю... Для чего нужны эти микротаймеры? Куда их пихать? Это обход стандартной задержки в ahk? ( где-то слышал, что есть стандартная задержка в 10мс что-ли..) Объясните пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[powercat]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=37884</uri>
			</author>
			<updated>2017-09-01T23:31:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=119096#p119096</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=118830#p118830" />
			<content type="html"><![CDATA[<p>Продолжая тему микротаймеров, нашел работу в которой придуман еще&nbsp; один&nbsp; <a href="https://autohotkey.com/boards/viewtopic.php?t=29957&amp;start=20">микротаймер</a>. Его период составляет тоже около 1 миллисекунды, и я подумал возможно ли добиться еще меньшей выдержки? Попробовав решить задачу вглубь (изменение кода драйвера) я потерпел крах т.к. не хватает знания, и тогда я решил схитрить:<br />что если создать два таймера (и более -если нужна еще меньшая выдержка)&nbsp; по 1 мс сместив их относительно друг друга на 500 мкс? Тогда частота повышается вдвое и в результате период станет 500мкс.<br /></p><div class="codebox"><pre><code>
#SingleInstance force
#Persistent

#include CLR.ahk

asm := CLR_LoadLibrary(&quot;WaitableTimer\WaitableTimer.dll&quot;)

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

loop 
{
++ZX
	if (ZX=1200) ;выдержка 500 мкс (кол-во циклов находим опытным путем)
	{
	ZX:=0
	Break   
	}
}	
wt2 := asm.CreateInstance(&quot;WaitableTimer&quot;)
MyTimer2 := wt2.Create(Func(&quot;Test&quot;), 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
</code></pre></div><p>P.S. Не забываем в свойствах разрешить работу драйвера.</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2017-08-27T17:00:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=118830#p118830</id>
		</entry>
</feed>
