我正在尝试使用iPhone进行某种测量,我需要一个每mSec(或更早)触发的事件,此事件将打开/关闭LED。
我尝试了一些选项来使这项工作没有任何成功。如果我使用NSTImer事件,我可以达到的最大频率是100Hz左右。
如果我以简单的for循环打开/关闭LED,频率会变为300Hz,但这似乎是最大值。此外,它不是纯粹的周期性,上下文切换发生,我很快得到控制。
我也尝试过Mach API,但没有运气。您是否认为甚至可以以1KHz左右的频率打开/关闭LED。
答案 0 :(得分:2)
你发现NSTimer的分辨率有限。
应用程序并非设计为实时系统,系统进程可能(并且确实)不时发生,这可能会定期延迟处理(内存警报,系统功能等)。对于通常的应用程序,这些可能不会以明显的方式表现出来,但是如果你试图做一些强烈的循环,那么你会更频繁地观察它们。