Paso 3: El algoritmo trabaja
La tarea era la siguiente.
Al cruzar el rayo infrarrojo en la parte inferior de las escaleras - los LEDs sin problemas encenderán hacia arriba.
Cuando cruce el infrarrojo de la viga en la parte superior de las escaleras - los LED de luz hacia abajo suavemente.
En el caso cuando dos rayos se cruzan en el mismo tiempo - todos los LEDs luz suavemente
Después de cierto tiempo, preestablecido utilizando la pantalla y el teclado la luz LED abajo suavemente en el mismo sentido, en el que se ha convertido en.
Todos los retrasos son establecidos y controlados por la pantalla.
Varios efectos de iluminadores se pueden encontrar en el menú.
Y la elección de salidas (1 a 16)
El programa fue escrito en CodeVisionAVR.
No voy a publicar el código entero, pero he aquí algunos puntos principales:
máscara de unsigned char;
void processUp() {}
{if(datUp==0)}
delay_ms(50);
para (mascara = 0 x 01; Máscara máscara << = 1)
{
PORTC | = máscara;
wait1(); /
}
retardo de
wait1(); retardo antes de encender abajo
ahora se apaga (en la misma dirección)
para (mascara = 0 x 01; Máscara máscara << = 1)
para la dirección opuesta:
para (mascara = 0 x 80; Máscara máscara >> = 1)
{
PORTC & = ~ máscara;
wait1();
}
}
}