Paso 14: Tratar con inexactitud
Uno de los puntos de este proyecto era crear un reloj que es exacto y se puede confiar, pero si pones el reloj Cwik junto a un reloj muy confiable, usted puede notar que es lento/rápido por unos segundos durante un período de 24 horas.Contra el Error
Lo puedo decir, no hay lugar en el código donde milisegundos desaparecen, así que me veo llevado a creer que las imprecisiones de la sincronización debido a un error de estándar en el reloj de cristal. Mi conocimiento de cómo relojes de cristal es muy amateur, pero podría ser convencido de que muchos factores juegan en su exactitud, como el voltaje suministrado, temperatura, proceso de fabricación, edad del reloj, etc.. También supongo que si usted sustituye el reloj de cristal con otro, sería observar comportamiento diferente (uno puede ser rápido, uno podría ser lento). Puesto que hay tantas variables, es inútil tratar de abordar el error antes de que el producto final es ensamblado con los componentes finales (por lo tanto, por qué este paso es después de la soldadura y ensamblar el reloj Cwik).
El Error de medición
A fin de compenstate para el error en el software, debemos comprender nuestro error. La manera mediremos error es precisamente a partir del reloj Cwik junto a un reloj de referencia extremadamente precisos que muestra segundos (como un ordenador) y ver cómo lejos está el reloj Cwik de la referencia del reloj después de exactamente 7 días.
Por ejemplo, si el tiempo es en la actualidad 8:05 lunes, pasa al modo de ajuste de la hora ajustar el reloj Cwik a 8:06 y esperar a que el reloj de referencia cambiar a 8:06 antes de chasquea el interruptor para desactivar el modo de ajuste de la hora (ya que restablecemos los segundos en el modo de ajuste de hora). Deje su reloj durante 7 días y cuando el reloj Cwik a 8:06 la semana siguiente, el tiempo en el reloj de referencia y medir la diferencia.
Te recomiendo una semana completa porque más largo es el ellapsed de tiempo, más exactamente podemos medir el error. A continuación, es una corazonada que la fuente de energía podría ser responsable de algunos de los errores. Si está encendido el dispositivo desde una fuente de alimentación 9V CC enchufado en la pared, características de uso de energía son relativamente cíclicas con un período de una semana. Usted y sus vecinos pueden utilizar más o menos energía en comparación con los días de la semana los fines de semana, pero al capturar una semana completa, esperamos obtener un error promedio , no un error diario que puede variar dependiendo del día de la semana.
El Error de fijación
Ahora que tenemos un número de segundos que realmente ellapsed (el tiempo en el reloj de referencia) y el tiempo que el reloj Cwik ellapsed, podemos calcular el error.
En nuestro ejemplo anterior, si después de una semana en el reloj Cwik el tiempo en el reloj de referencia 8:06:52, significa que estamos corriendo lento, con la siguiente precisión:
precisión = (segundos el CwikClock pensamiento ellapsed) / (segundos que el reloj de referencia ellapsed)
precisión = (7 días * 24 horas * 60 minutos / hora * 60 segundos / minuto) / ((7 * 24 horas / día * 60 minutos / hora * 60 segundos / minuto) + 52)
exactitud = 604800 segundos/605852 segundos
precisión = 0.998263602
Para compensar, cambiar ONE_SECOND en el código a 1000 * exactitud o 998. Si usted decide modificar la precisión después de otra semana, establezca ONE_SECOND en 998 * exactitud (no el inicial 1000 * exactitud, puesto que las mediciones fueron asumiendo que ONE_SECOND es 998ms de nuestro reloj de cristal).