Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2009, 11:15
Antonio92
 
Fecha de Ingreso: mayo-2006
Ubicación: Vigo
Mensajes: 34
Antigüedad: 18 años
Puntos: 0
Precisión del control Timer

Buenas,


como ya he puesto en otro hilo estoy haciendo un programa que cuente tiempos entre clicks, para el cual estoy utilizando un control Timer, quería precisión de centésima de segundo pero me dan medidas muy imprecisos (cuento con mi reloj que pasen 10 segundos entre clicks y el programa me dice que han pasado 6,2 y cosas así, notándose más el efecto "retardo" cuanto más tiempo dejo pasar entre clicks).

Si cambio el intervalo del Timer para que capte solo precisión de décima de segundo (pongo Timer1.Interval a 100) es bastante menos impreciso, pero sigue siéndolo y en tiempos grandes se nota. ¿A qué se debe esto? ¿Puedo solucionarlo de alguna manera?

El código en cuestión es el siguiente (en este caso tengo Timer1.Interval a 10 para captar precisión de centésima de segundo):

Código :
Ver original
  1. Dim Tiempo As Integer
  2. Dim Indice As Integer
  3. Dim Fichero As String
  4.  
  5. Private Sub Command2_Click()
  6. Tiempo = 0
  7. End Sub
  8.  
  9.  
  10. Private Sub Form_Load()
  11. Tiempo = 0
  12. Indice = 1
  13. Fichero = InputBox("Introduzca el nombre del archivo en el que quieres guardar los tiempos", "CuentaTiempos versión 0.01 por Antonio Álvarez")
  14. Open App.Path & "\" & Fichero & ".txt" For Append As #1
  15. End Sub
  16.  
  17. Private Sub Command1_Click()
  18. List1.AddItem "Tiempo de oscilación " & Indice & ": " & Tiempo / 100 & " segundos"
  19. Print #1, "Tiempo de oscilación " & Indice & ": " & Tiempo / 100 & " segundos"
  20. Tiempo = 0
  21. Indice = Indice + 1
  22. End Sub
  23.  
  24. Private Sub Timer1_Timer()
  25. Tiempo = Tiempo + 1
  26. End Sub

Última edición por Antonio92; 22/11/2009 a las 11:57