Medição do tempo de reação - garantia da precisão dos dados

0

Eu pretendo escrever um programa que meça o tempo de reação. Ainda não tenho certeza sobre a linguagem de programação que vou usar. O programa será usado como parte de um experimento de psicologia. Idealmente, gostaria que fosse executado no Windows.

Mas antes de realmente me esforçar para escrever o programa, gostaria de ter a confiança de que os dados resultantes do tempo de reação serão precisos em alguns milissegundos. Um conhecido me disse que não é realmente possível, no Windows, marcar os eventos com precisão, independentemente dos processos em segundo plano (verificações antivírus, etc.). Primeiro de tudo, isso é verdade? Em segundo lugar, se é verdade, como contornar este problema? Eu uso o Linux ou ...?

    
por Alex Chernavsky 20.09.2011 / 22:08

3 respostas

2

Para garantir dados precisos, você precisa de um sistema operacional em tempo real . O Linux por padrão não é melhor que o Windows, mas o Linux pode ser configurado com um kernel habilitado em tempo real (IIRC).

Para detalhes sobre como escrever tal programa, sugiro que você pergunte no stackoverflow.com.

Agora, na prática, você também obterá resultados razoavelmente precisos no Windows. O agendamento de processos afetará muito pouco os resultados. A maioria dos softwares antivírus é executada no userspace, o que significa que eles estão em igualdade de condições com o seu aplicativo. Sua melhor aposta é tentar e ver.

    
por 20.09.2011 / 23:58
1

O hardware de aquisição de dados dedicado pode fazer medições precisas para o que seu orçamento permitir, independentemente do sistema operacional e do idioma. Estou mais familiarizado com hardware e software da National Instruments, mas existem outros fornecedores.

    
por 24.06.2012 / 21:04
-1

Eu acho que não é muito problemático Eu usei GFA-basic veja: link

meu programa (mais simples) é executado da seguinte forma:

Dim x, y, z As Integer
Dim ttt, tijd As Double

nogeens:
Print AT(5, 5); "wait"
Print "                    (press 'p' when screen goes black)"
Pause 50
Print AT(5, 5) ; "READY ??  "

Pause 40 + Rnd * 20

ttt = Timer
For y = 1 To 550
  Line 0, y, 1000, y
Next
While InKey$ <> "p"
Wend
tijd = Timer - ttt
Cls

If tijd < .1
  Print "FALSE START",
  Print "Press 'p' just AFTER you have seen the screen blackened  !!"
  Print "press 'q'to try once again"
Else
  Print AT(5, 5); tijd
  Print "press 'q'to try once again"
EndIf

While InKey$ <> "q"
Wend
Cls
GoTo nogeens
    
por 14.01.2014 / 15:08