Pergunta

É possível dormir por uma quantidade de tempo que vai ser preciso para menos de 100 microssegundos no Windows CE? O jitter menos, melhor -. Idealmente gostaríamos tempos de resposta microssegundo único dígito

O que realmente queremos é um temporizador 5ms com muito baixo jitter - embora o Windows CE waitFor [Simples | Multiple] objetos e APIs do sono trabalho em unidades de milissegundos, não podemos, em seguida, correta para o sub-ms tempo nosso código pode demorar para ser executado, para que o ciclo se gradualmente se.

Se isto não for possível, essa informação seria muito útil também.

Foi útil?

Solução

Este artigo MSDN tem algum código para criar um 500us interrupção do timer em WinCE, por isso é absolutamente possível.

Se você não é fechado em sua versão do WinCE, você pode querer olhar para Tenasys , que pretende oferecer um RTOS correndo lado a lado com o Windows em hardware padrão.

Eu também ouvi coisas boas sobre QNX , mas eu não ter usado os seus produtos quer. Eu não acredito que é compatível com Windows de qualquer maneira, no entanto.

Outras dicas

Não é possível. Não é mesmo possível em desktops. sistemas operacionais típicos simplesmente não funcionam dessa maneira.

Se o que você precisa é algo para o fogo precisamente a cada 4 milissegundos ou o que você está sem sorte. Se o que você realmente precisa é algo para o fogo precisamente 250 vezes a cada segundo que pode ser mais factível. Se você estiver na necessidade do último que eu posso sugerir uma abordagem.

Se a sua necessidade de sono não é uma questão de bateria / thread-rendimento e apenas uma questão de timing preciso, você pode usar o "PerformanceCounter" em dispositivos Windows CE. Em XScale e Qualcomm CPUs, este é o temporizador de chip interno e tem 1 sub-ms granularidade. Em processadores OMAP e Samsung mais velhos, a API PerformanceCounter é passando pela marcação sistema 1ms e tem muita instabilidade.

L.B.

Para corrigir o jitter você precisa ter acesso a um temporizador de alta resolução. A CPU que você tem pode ter um. Se não, o controlador de interrupção pode.

A maneira mais fácil é usar um Linux com realtime e vinho o seu caminho para essa biblioteca. você quer um Tópico periódica.

Dê uma olhada neste relatório do NIST.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top