<100US 정확한 수면 Windows CE
-
10-07-2019 - |
문제
Windows CE에서 100 마이크로 초 미만으로 정확한 시간 동안 잠을 잘 수 있습니까? 지터가 적을수록 더 좋을 것입니다. 이상적으로는 단일 자릿수 마이크로 초 응답 시간을 원합니다.
우리가 정말로 원하는 것은 지터가 매우 낮은 5ms 타이머입니다. Windows CE Waitfor [단일 | 다중] 객체 및 수면 API는 밀리 초 단위로 작동하지만 코드가 취할 수있는 하위 MS 시간을 수정할 수는 없습니다. 주기가 점차 표류되므로 실행됩니다.
이것이 불가능하다면, 그 정보도 매우 도움이 될 것입니다.
다른 팁
불가능합니다. 데스크탑에서는 불가능합니다. 일반적인 운영 체제는 단순히 이러한 방식으로 작동하지 않습니다.
필요한 것이 4 밀리 초마다 정확하게 발사 할 것이라면 또는 운이 좋지 않은 것입니다. 당신이 정말로 필요로하는 것이 더 많은 것을 할 수있는 초당 250 회 정확하게 250 번 발사하는 것이라면. 후자가 필요한 경우 접근 방식을 제안 할 수 있습니다.
잠을 자야 할 필요가 배터리/스레드 수율 문제가 아니고 정확한 타이밍 문제 일 경우 Windows CE 장치에서 "PerformAncecounter"를 사용할 수 있습니다. Xscale 및 Qualcomm CPU에서는 내부 칩 타이머이며 1ms 이하의 세분화가 있습니다. 구형 OMAP 및 Samsung 프로세서에서 Performancecounter API는 1MS 시스템 진드기를 통과하고 있으며 많은 지터가 있습니다.
LB
지터를 수정하려면 고해상도 타이머에 액세스해야합니다. 당신이 가진 CPU에는 하나가있을 수 있습니다. 그렇지 않은 경우 인터럽트 컨트롤러가 가능합니다.
가장 쉬운 방법은 실시간으로 Linux를 사용하고 해당 라이브러리에 와인을 사용하는 것입니다. 당신은주기적인 스레드를 원합니다.