Entendiendo el código LED chaser para PIC18F4550

-1

Quiero hacer un chaser LED de derecha a izquierda en el microcontrolador PIC18F4550. Aquí hay una sección del código de un programa que no puedo entender:

LATB=1<<i;  
delay();
LATB=0x00;
delay();
  1. ¿Cómo funciona esto en perseguir de derecha a izquierda?
  2. ¿Por qué es necesaria la demora?
pregunta Rajat

1 respuesta

1

El operador << es un left shift . desplaza cada bit un número de posiciones a la izquierda, y llena las piezas faltantes con cero:

1<<0 equals 0b00000001
1<<1 equals 0b00000010
1<<2 equals 0b00000100
... etc ...

Si i aumenta de 0 a 7 en un bucle, obtendrá un patrón con un bit que parece moverse a través de cada posición. El orden real de los LED dependerá de su circuito físico. Si desea que se mueva en una dirección diferente, haga que i pase de 7 a 0 en su lugar.

El retraso es simplemente necesario para que puedas ver cualquier cosa. Sin el retraso, se desplazaría a través de todas las posiciones demasiado rápido para ver algo en absoluto. Un retraso intermedio hace que se encienda el LED, espere un poco para que tenga tiempo de reaccionar, y luego apáguelo nuevamente y déjelo apagado por un tiempo.

El último retraso es opcional. Si lo eliminas, el efecto será ligeramente diferente.

    
respondido por el pipe

Lea otras preguntas en las etiquetas