Rotina temporizador de interrupção de serviço em um computador executando o Host a uma taxa de 10 microssegundos ou mais rápido

StackOverflow https://stackoverflow.com/questions/1175164

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu estou tentando executar o seguinte pseudocódigo a uma taxa de 10 microssegundos ou mais rápido em um computador host (512 MB de RAM, processador Intel de 2,5 GHz Pentium 4, etc.) rodando em um sistema operacional Windows XP:

int main(void)
{
    while(1){};
}

Interrupt service routine:
every 10 microseconds, printf("Hello World");

Estou ciente de que existem temporizadores MFC, mas eles não são funcionais se os temporizadores precisa gatilho mais rápido do que 1 ms. Qual seria a melhor maneira de realizar o que os objetivos do meu pseudocódigo? Agradecemos antecipadamente.

Foi útil?

Solução

Eu não estou certo que você pode obter esse tipo de desempenho de Windows XP, pelo menos não de forma confiável a partir userland. Você pode ter que executar o seu código como um driver de kernel, ou melhor ainda investigar usando um sistema operacional em tempo real, como Xenomai vez.

Outras dicas

Ignorar este - micro I mis-leitura como mili na questão Desculpe:

Como você dizer que você está no Windows, o MultiMedia Temporizador é o caminho a percorrer.

Ou o mais recente TimerQueue TimerQueue

Você pode ser capaz de obter resolução de 1 ms, dependendo do seu hardware.

Good Luck

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