<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12951</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12951&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Микротаймеры - создание периода менее 1000 микросекунд».]]></description>
		<lastBuildDate>Sat, 02 Sep 2017 06:43:35 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=119101#p119101</link>
			<description><![CDATA[<p>Не важно зачем, у многих пользователей возникает амбиция создать цикл с минимальной задержкой - вот вам пока что минимальная - дерзайте.</p>]]></description>
			<author><![CDATA[null@example.com (belyankin12)]]></author>
			<pubDate>Sat, 02 Sep 2017 06:43:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=119101#p119101</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=119096#p119096</link>
			<description><![CDATA[<p>Что-то я не понимаю... Для чего нужны эти микротаймеры? Куда их пихать? Это обход стандартной задержки в ahk? ( где-то слышал, что есть стандартная задержка в 10мс что-ли..) Объясните пожалуйста.</p>]]></description>
			<author><![CDATA[null@example.com (powercat)]]></author>
			<pubDate>Fri, 01 Sep 2017 23:31:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=119096#p119096</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Микротаймеры - создание периода менее 1000 микросекунд]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118830#p118830</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (sabir.yanin2014)]]></author>
			<pubDate>Sun, 27 Aug 2017 17:00:56 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118830#p118830</guid>
		</item>
	</channel>
</rss>
