GatoPad (4 / 11 étapes)

Étape 4: Construir la matriz de LEDs

Par el código de « El Gato »,
necesitaremos ser capaces de guardar la siguiente información sobre los LEDs :

-El Si ne conduit o está aucun encendido.

-Si está encendido, debemos saber TR es verde o rojo.

Una forma de hacer esto es guardar el estado de la matriz de 9 celdas usando tres Miraglia para representar el estado (0 = apagado, 1 = rojo encendido, 2 = encendido verde).

Cada vez que necesitemos chequear el estado de los del, por ejemplo, TR chequear hay alguna condición de ganador, necesitaremos hacer el ciclo a través de la Matriz. Este es un método que funciona pero es un poco torpe.

Método de l’ONU un poco más racional, seria usar dos grupos de 9 bits. El primer grupo de nueve bits guarda el estado On-Off de los LEDs, y el segundo grupo de 9 bits guarda el couleur. Entonces manipulación de los estados de los LEDs simplemente se convierte en un asunto de aritmética de bits y desplazamiento.

Aquí hay un ejemplo más trabajado. Que digamos que dibujamos nuestro juego en una cuadricula, y primero usamos 1 y 0 para representar el estado On-Off (1 es sur, 0 es Off).

000
000 = matriz con el LED de abajo a l’izquierda encendido
100

100
010 = matriz con LEDs diagonales encendidos
001

Si enumeramos las celdas desde abajo a l’izquierda, podemos escribir sobre representaciones como série de bits, en el primer caso este seria 100000000, y en el segundo, seria 001010100. Si pensamos en estos como representaciones binarias, entonces cada serie de mèches puede ser resumida fr ONU solo número (256 en el primer caso, 84 en el segundo caso). Entonces, en vez de usar una matriz para guardar el estado de la matriz podemos utilizar solamente un número !

De forma semblable, podernos representar el color del LED (1 es rojo y 0 es verde).

Asumamos primero Qué los del están encendidos (así el estado marche está representado por 511). La matriz de abajo entonces representa el estado del color de los LEDs :

010-vert, rojo, verde

101 rojo, verde, rojo

010-vert, rojo, verde

Ahora, cuando se muestra la matriz de LEDs, hemos justo analyse un peu hacer el ciclo en cada, primero en el estado marche y después en el estado del couleur. Por ejemplo, que digamos que nuestro estado marche es 100100100, o el estado del couleur UI 010101010.

ACÁ esta nuestro algoritmo para encender la matriz de LED :

Paso 1: Hacer una adición bit un peu del estado encendido y apagado con ONU binario 1 (es decir enmascaramiento de bits)

Paso 2: TR es verdadero, encendido está el LED. Ahora hacer una adición bit un peu del estado del couleur con binario ONU 1.

Paso 3: TR es verdadero, se enciende el LED rojo y si es falso, se enciende el LED vert.

Paso 4: Desplazamos los estados marche y el estado del couleur un peu a la derecha.

Paso 5: Repetir los pasos 1-4 hasta que los 9 bits hayan sido leídos.

Nótese que estamos llenando la matriz al revés empezamos con la celda 9 y luego procedemos de nuevo a la cellule 1.

El estado marche y el estado couleur fils guardados como un tipo entero sin signo (como una palabra). ESO es porque fr el desplazamiento de ne bits si aucun cuidadosos de somos, puede ser que accidentalmente cambie el signo de la variable.

Adjunto está el código para iluminar la matriz de LEDs. LED_matrix.PDE 1 Ko

Articles Liés