El ejempo inicia con la instruccion bucle que es igual a repetir( con la diferencia que hace iteraciones infinitas hasta que se sale del programa. el programa se quedara leyendo la instruccion si( y comparando el valor de %p, si %p es igual a 112 (pin 1 activado) se ejacutara todas las instrucciones abajo de si( hasta llegar a finsi. Si %p no es igual a 112, se salteara todas las instrucciones y el programa seguira desde finsi.
#----programa de ejemplo----
# declarar las variables al inicio del codigo
variables
$tiempo=100
$puerto=1
finvariablesinicio
# poner los pines del puerto a cero y esperar
#5000 milisegundo
multipuerto(0,5000)
# iniciar un bucle infinito y leer
# el puerto de controlbucle
# si el puerto de control es igual a 119
# repetir 5 veces multipuerto( $puerto,$tiempo)
# y sumar $puerto + 1si(%p=119)
repetir(5)
multipuerto($puerto,$tiempo)$puerto=suma($puerto;1)
finrepetir
finsi# si el puerto de control es igual a 119
# apagar todos los pines y salir del sistema
si(%p=112)
# apagar los pines y salir del programa
multipuerto(0,0)
# cuando se llega a la instruccion
"final"
# se sale del sistema
final
finsifinbucle
final
al iniciarse el programa entra en un bucle infinito, y se queda leyendo todo el tiempo el puerto de control (%p). si %p= 119 envia al puerto de datos el valor de $puerto.
si %p=119 sale del sistema.
En el video se puede ver en la protoboard 2 micro-swichts que al ser presionados ponen en estado alto los pines del puerto de control.
No hay comentarios:
Publicar un comentario