Paso 4: Básico, seguido de la vuelta
waitcnt (clkfreq + cnt)
Antes de que analicen esta instrucción, me explico primero clkfreq y cnt;
clkfreq
El apoyo puede ejecutar en múltiples frecuencias de reloj, desde 20kHz hasta 80MHz. clkfreq es una variable de sistema igual al reloj cuántos ciclos (garrapatas) en 1 segundo. Si el apoyo está a 80MHz, clkfreq será = 80,000,000. Si el apoyo se ejecuta a 20kHz, lo será = 20.000.
CNT
CNT es el reloj del sistema. En el arranque, cnt = 0 e incrementa en cada TIC a 2³² antes de voltearse a 0. CNT es un valor de sólo lectura, no se puede cambiar el reloj del sistema, acabo de leer lo que es.
Ahora, waitcnt: pausa la ejecución del programa hasta que el reloj del sistema alcanza el valor de los paréntesis. ¿Cuál es el valor entre paréntesis? El actual sistema de reloj (cnt) más el número de garrapatas en un segundo. waitcnt (clkfreq + cnt) dice que el apoyo que sostenga por 1 segundo antes de ir a la siguiente instrucción.
¿Lo que si queríamos esperar medio segundo? waitcnt (clkfreq/2 + cnt). ¿5 segundos? waitcnt (clkfreq * 5 + cnt)
Así, en nuestro programa, hemos volteado pin 0 a una salida, conectada a V + (conducción alta) para encender el LED y esperó un segundo. Aquí está la siguiente instrucción;
Outa [0]: = 0
Esta instrucción cambia pin 0 de la estar conectado a V + conectarse a tierra. Se apaga el LED. Tenga en cuenta que pin 0 es aún una salida, pero está conectado a tierra.
waitcnt (clkfreq + cnt)
Al igual que última vez, detiene la ejecución del programa hasta que el reloj del sistema es igual al valor entre paréntesis. En este caso se detendrá ejecución durante un segundo.
Envolviéndolo
Ha completado la instrucción final en nuestro bucle de repetición. Debido a nuestra repetición bucle no tiene ninguna condición final, iniciará de nuevo en la primera línea (outa [0]: = 1) y seguir funcionando indefinidamente.