Paso 5: código
## OPERACIÓN DE ##
1. Presione el botón start/stop para indicar que usted está listo para comenzar la entrada de código. La luz de estado empieza a parpadear lentamente.
2. Pulse en el código en el botón código. La luz de estado parpadeará en 120 BPM, por lo que usted puede utilizar esto como su metrónomo si quieres. Sin embargo, el programa de cryptap mide las longitudes de pulso entre sí proporcionalmente, por lo que también puede usar su propio tempo. Sólo asegúrese de que son bastante exactos!
3. cuando se realiza la entrada de código, presione el botón start/stop otra vez. El programa entonces decidirá si debe dejarle.
Puesto que los seres humanos no son guardianes del tiempo muy preciso (tuyo realmente no es), configurar la relación de tolerancia de +-30%. Eso significa que las longitudes de golpe pueden ser inexacta por esa cantidad y todavía paso muster. Esto es suficiente establecer la diferencia entre canciones bastante similares. Hay una pequeña cantidad de traslapo de duro-a-alcanzan entre doble y triple longitud latidos, pero el código todavía es bastante difícil de romper.
Para desbloquear la puerta, las pulsaciones deben estar en las proporciones correctas entre sí (+ /-la relación de tolerancia), y el número de pulsaciones debe ser la correcto. Si se introduce una contraseña incorrecta, el programa espera unos segundos mientras se ignoran cualquier entrada del usuario. También parpadeará la luz de estado rápidamente. Si el código correcto es introducido, la luz de estado se encenderá constantemente y la puerta se desbloqueará durante 8 segundos.
## CONFIGURACIÓN DE USUARIO ##
La clave se almacena en un array como este:
#define keylength 5
const int clave = {2, 1, 3, 3, 3}; "Feliz cumpleaños"
La matriz almacena la cantidad de tiempo que pasa entre los latidos. Así que si tu contraseña tiene seis notas como "Feliz cumpleaños", debe haber cinco elementos de la matriz. Si tu contraseña es muy larga y tiene más de 16 compases, (muy difícil, que no lo recomiendo), debe aumentar el número definido en esta línea:
#define inputCodeLength 16
## EL RESTO DEL CÓDIGO ##
Tenía curiosidad acerca de interrupciones, así que tuve mis botones activan interrupciones. Para hacer estas interrupciones fácil de usar, tuve mis manejadores de interrupción Compruebe ciertos punteros a función. Si el puntero no está establecido en NULL, se invoca la función apunta a. Éstos se establecen con las distintas funciones de "ajuste del modo" dentro de cryptap.c.
Hice un esfuerzo para evitar desbordamientos de búfer estableciendo un máximo número de pulsos entrados. Si el número máximo de pulsos de entrada, el programa inicia análisis de contraseña inmediatamente y decide si abrir la puerta.
Espero que mis comentarios en la ayuda de código.
## ERRORES DE ##
He intentado quitar el USB depuración de código, pero el código no funciona si lo hago. Por lo tanto, dejé de usb_init() y las diversas declaraciones de print(). Lo agradecería si alguien podría quitarlos y todavía tiene el trabajo del programa. Mejor aún si puede explicar por qué no funcionó para mí.
Inmediatamente después de ser programado, el Teensy a veces no acepta entrada de código. Para solucionar esto,-ciclo de alimentación del circuito.