Desculpe por colocar urgente, mas é pq este problema eu preciso resolver ontem, senão eu n apresento meu TCC… rs
Acontece que eu estou automatizando um experimento de física, do pêndulo matemático… (determina a força de aceleração da gravidade) e assim, estou utilizando a classe parport no processo de automatização. O esquema de captura dos períodos funciona da seguinte maneira: necessito que um dos pinos da porta paralela seja lido a cada 1 milissegundo, pois o resultado precisa ser exato. Então, coloco um laço contínuo e utilizo um Thread.sleep(1). Coloco um contador, e no momento que a linha passa pelo sensor infravermelho, o valor obtido do contador é armazenado, e o contador é novamente zerado.
O problema é que: este processo de leitura está gerando atraso. Executando pelo netbeans, eu consigo determinar o tempo que eu preciso, mas quando passo para a aplicação em si, fora do netbeans, o valor que obtenho é diferente (não me pergunte o por que mas é isso que acontece). Para ficar mais claro, quando eu faço o teste utilizando o netbeans, obtendo um tempo de 1.788 segundo por período. Quando faço a medição utilizando a aplicação em si, o resultado obtido fica em torno de 1.823 segundo. Pode parecer pouco, mas quando faço o cálculo em que determino a aceleração da gravidade, com o primeiro valor, obtenho algo em torno de 9.78 m/s², bem próximo ao valor de 9.8m/s² que é o valor perfeito. Com o segundo valor, obtenho 9.4m/s². Não consigo entender o por que disso, sendo que o java é um só.
Alguém teria alguma solução para o problema?
abraços.
o entanglement resolveu meu problema. Consegui captar com precisão. Coloquei System.nanoTime() no começo do método e no final. Depois tirei a diferença, e pimba!
valeu.