Paso 7: Con cuatro interruptores
Como implementamos la alarma, vamos a ampliar nuestro hardware y software para el manejo de cuatro interruptores. Desde la salida del temporizador contador de 0A es en el puerto B, pin 2, simplemente no podemos enlazar más cambia secuencialmente al puerto B. Una solución fácil sería usar puerto D, pero vamos a mantener ese puerto disponible para otras funciones (quizás un motor paso a paso). Así que vamos a conectar los interruptores adicionales PB3 y PB4.Lectura de los interruptores es sobre todo sin cambios. Se cambia el valor de máscara a 0x1B (00011011 binarios) en el bit de máscara 2 junto con 5, 6 y 7. Un truco adicional se utiliza para crear un número binario de 4 bits. Cambio 3 y 4 un bit a la derecha y combinarlos con los pedacitos 0 y 1 en un número binario de 4 bits. Esto es la sintaxis estándar de C para el desplazamiento y la combinación de bits, pero puede no ser bien conocido para los novatos.
but1a = (but1 & 0 x 03) | ((but1 & 0x18) >> 1); but1 tiene interruptor de lectura
En la operación, el programa parpadeará dos veces y un pitido dos veces a la señal de inicialización. En cualquier momento se cambiaron los interruptores, el número que representan voluntad se sonó. Al no cambian los interruptores, el LED parpadeará.
Para ejecutar este código, cree un nuevo directorio (llamada un pitido si quieres) y descargar el siguiente archivo de código C y makefile en él. Cambie el nombre Makefile2.txt a Makefile. Utilizando WinAVR, compilar el programa y cargarlo en el Attiny2313.