Paso 6: La función de configuración
la función setup():
con este ciclo nos propusimos todo el pin utilizado para la matriz de LEDs a la entrada. Esto porque la matriz de Charlieplexing apaga el LED poniendo sus pernos a la entrada.
con estas dos funciones nos permiten la resistencia de pullup para los dos botones. Por lo tanto, cuando se presiona un botón, su estado se convierten en baja.
Deshabilitamos las interrupciones globales para establecer todas las interrupciones que necesitamos.
Con estas funciones ajuste al temporizador de interrupción desbordamiento. Se utiliza para actualizar la matriz de Charlieplexing.
He escrito un post aquí que explicar exactamente cómo funciona.
Esta función habilita la interrupción global de pinChange utilizada para la interrupción de B botón.
En la función setup() no habilitamos las interrupciones para los botones A y B. Habilitamos en la función goSleep() . Esto porque usamos las interrupciones para los botones solamente para despertar los microcontroladores después de que se va a dormir.
Estas funciones desactivar todos los periféricos innecesarios para reducir energía consume.
Ahora podemos habilitar la interrupción global.
A continuación os mostramos la cara de KeyChainino llamando a la función showKeyChaininoFace() y borre todos los LEDs.
Después de establezca la variable gameStarted en true. De esta manera nuestras funciones sabe que el juego se inicia.