' {$PBASIC 2.5}
' Versión del controlador de árbol "Westinghouse" Navidad para el árbol de la luz-cadena 16.
' Esto es un homenaje al árbol original utilizado en el centro de i+d de Westinghouse en Churchill, PA.
' Ejecuta 2 módulos de 8 controladores de salida de 110V, 1 para 8 cuerdas superiores, 1 para 8 cuerdas inferiores
' Cada módulo impulsado por TTL 74-573 cierres octales de serie. Datos del byte más bajo de IO
' escrito/en manos de las transiciones de baja-alta-baja en bits de control desde el byte superior de IO.
' Módulo 1 (luz superior) asegurada por el control de puerto de 8 bit, módulo 2 (inferior) por puerto de 9 bits.
' Los 2 módulos según lo utilizado aquí están expandibles a 8 módulos para un total de 64 salidas controladas
' Esta versión minimiza el uso de la memoria mediante la eliminación de las variables al azar
' y también el diseño estructurado de tener un bucle principal que se llama iluminación
' rutinas como subrutinas. Ahora todas las rutinas son en el bucle principal sí mismo.
' Sí, malo para tener menos estructura pero ahorra muchos bytes. Varios de los
' rutinas anteriores también fueron reescritas para usar bucles más ya que toman
' mucho menos espacio que sólo pasando a través de listas de valores de la lámpara. Confiando
«más sobre lazos tiene la desventaja de limitar los patrones un poco, pero
' hace la programación más intrincada e interesante.
«Descargar programa - conectar cable serial COM1 a encender Junta
' botón de Play en la barra de herramientas
' Para probar las rutinas individuales pegar rutina en "xmaslites2-minimizar-testfile.bs2"
' Recuerde actualizar el archivo de prueba si cambian de definiciones de variables o subrutinas
'----------------------------------------------------------------------------
' definir y establecer las variables
ctr1 VAR Nib ' contrarrestar los índices de bucles rutina principal
Ctr2 VAR Nib
ctr3 VAR Nib
subctr1 VAR Nib ' índice de contador para bucles de subrutina
subpause VAR Word ' variable para pasar el tiempo de pausa a subrutinas
shiftcount VAR Nib ' contador para el número de turnos
lpctr1 VAR Nib ' contrarrestar longitudes para bucles de rutina principal
lpctr2 VAR Nib
delay1 VAR Word ' más o menos constantes para las pausas en las rutinas
delay2 VAR palabra
lowerlamps VAR Byte ' contiene lámpara los bits de estado para bajos 8 cuerdas
upperlamps VAR Byte ' contiene lámpara los bits de estado para superiores 8 cuerdas
holdvar1 VAR Byte ' temperatura portalámparas de valor
holdvar2 VAR Byte ' temperatura portalámparas de valor
shiftee VAR Byte ' variable temporal para que el cambio de rutinas
OUTL = % 00000000 ' establecer todas las líneas de datos bajo
OUTH = % 00000000 ' establecer todas las líneas de comando bajo
DIRS = % 1111111111111111 ' establece todos los pines de I/O en modo de salida
' Establecer los valores de las constantes que la mirada y la velocidad del árbol general
delay1 = 500 ' retardo de medio segundo
delay2 = 800
lpctr1 = 3
lpctr2 = 6
' bucle principal - en esta versión de memoria mínima, las rutinas de la lámpara no se llaman como subrutinas
HACER
' MMM AllFlash MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
PARA ctr1 = 1 a 4
OUTL = % 11111111 ' todas las luces en
GOSUB Drivemodule12
Delay2 pausa
OUTL = % 00000000 ' apagar todas las luces
GOSUB Drivemodule12
Delay2 pausa
SIGUIENTE
' NNN secuencia y relleno NNNNNNNNNNNNNNNNNNNNNNNN
' Esta rutina circula una cadena encendida alrededor, dejando
' un adicional encendido cadena cada vez hasta que se enciendan todas las cadenas.
' Se inicia con el círculo inferior de cadenas.
holdvar1 = % 00000000 ' esta variable acumula las cuerdas izquierda encendida
' final del juego - a partir de la cadena MSB MSB
' luego continuar agregando 1 MSB MSB-2, etc.. El
' Cadena MSB es cadena -H - en las etiquetas de cadena ligera
ctr3 = 8 ' este contador es disminuye como el número de pasadas necesitada
' hacer una cadena de luz en la pila acumulada disminuye
' con cada uno agregó cadena
PARA ctr1 = 1 a 8
shiftee = % 00000001 ' bit de control secuencia ligera comienza en LSB
PARA ctr2 = 1 a ctr3
lowerlamps = holdvar1 | shiftee ' ya encendido secuencias ORd con la cadena de cambia
OUTL = lowerlamps ' resultado de o se envía al módulo de control
GOSUB Drivemodule2
Delay1 de pausa
shiftee = shiftee << 1 ' cambiar la cadena de encendido al izquierda 1 lugar
SIGUIENTE
holdvar1 = lowerlamps ' recordar posiciones final cadena iluminado como cada bucle interno
' agrega una cadena más encendida en el extremo MSB
ctr3 = ctr3-1
SIGUIENTE
holdvar1 = % 00000000 ' misma rutina que el anterior, en la cuerda superior
ctr3 = 8 ' mientras las cuerdas inferiores todos permanecerán encendidas
PARA ctr1 = 1 a 8
shiftee = % 00000001
PARA ctr2 = 1 a ctr3
upperlamps = holdvar1 | shiftee
OUTL = upperlamps
GOSUB Drivemodule1
Delay1 de pausa
shiftee = shiftee << 1
SIGUIENTE
holdvar1 = upperlamps
ctr3 = ctr3-1
SIGUIENTE ' todas las lámparas de la izquierda en
' NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
' QQQQ sobre QQQQQQQQQQQQQQQQQQQQQQQQQQQ superior
' Similar a la secuencia y llenar, el anterior, excepto las luces circulan en la parte superior
' del árbol en pares de opuestos cadenas (secuencias mismo color), dejando
' un adicional encendido cadena cada vez hasta que se enciendan todas las cuerdas del par.
holdvar1 = % 00000000 ' esta variable acumula cadenas inferiores izquierda iluminadas
holdvar2 = % 00000000 ' esta variable acumula cadenas superiores izquierda iluminadas
' Nota: esta rutina aún no está terminada
' QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
' Drenaje VVVVV alrededor VVVVVVVVVVVVVVVVVVVV
' Todas las lámparas de luz y luego apagar secuencialmente superior/bot
' una vez alrededor del árbol hasta que todas las cadenas de
' Observe que OUTL contiene el estado actual del árbol
OUTL = % 11111111 ' comenzar con todas las luces en
GOSUB Drivemodule12
Delay2 pausa
PARA ctr2 = 1 a 8
OUTL = OUTL >> 1 ' derecho cambio, cambios en ceros
GOSUB Drivemodule1 ' desactivar la cadena superior
Delay2 pausa
GOSUB Drivemodule2 ' Apague cadena inferior
Delay2 pausa
SIGUIENTE
' VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
' WWWWWW superior inferior Flash WWWWWWWWWWWWWWWWWWWW
' flash todas cuerdas arriba y abajo y hacia atrás
PARA ctr2 = 0 para lpctr2
OUTL = % 11111111
GOSUB Drivemodule1 ' todos los principales cadenas en
OUTL = % 00000000
GOSUB Drivemodule2 ' todos abajo cadenas de
PAUSA delay1 ' esperar
OUTL = % 11111111
GOSUB Drivemodule2 ' todos abajo cadenas en
OUTL = % 00000000
GOSUB Drivemodule1 ' todos rematar cuerdas
PAUSA delay1 ' esperar
SIGUIENTE
GOSUB Drivemodule12 ' termina con todas las luces
' WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
' Subrutina de CCC SeqOnOff CCCCCCCCCCCCCCCCCCCCCC
' Luces de todas las cadenas, luego se apaga secuencialmente
' con aumento/disminución de pausa
' superior y bot controlado juntos
OUTL = % 00000000 ' empezar por salir todas las luces
GOSUB Drivemodule12
Delay2 pausa
PARA ctr2 = 0 para lpctr1
' enciende secuencialmente CW un top/bot de cuerdas a la vez
PARA ctr1 = 0 a 7
Ctr1 alta
GOSUB Drivemodule12
PAUSA delay2-(ctr2*(delay1-100)/2)
SIGUIENTE
' luces secuencialmente CW top/bot de cuerdas a la vez
PARA ctr1 = 0 a 7
Ctr1 baja
GOSUB Drivemodule12
PAUSA 100+(ctr2*(delay1-100)/2)
SIGUIENTE
SIGUIENTE ' termina con todas las luces
' CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
' JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ de Cylon JJJ
' delantera 5 cuerdas - salto hacia atrás y adelante rápido iluminado cadena
' top cadena solamente... por ahora
' Se debe iniciar con todas las luces
upperlamps = % 00000010
subpause = 200
shiftcount = 4
PARA ctr1 = 0 para lpctr2
GOSUB ShiftLeftUpper
GOSUB ShiftRightUpper
SIGUIENTE
OUTL = % 00000000 ' apagar todas las luces
GOSUB Drivemodule12
' JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
' HHH SeqOnOff opuestos subrutina HHHHHHHHHHHHH
' Luces de todas las cadenas, luego se apaga secuencialmente
' con aumento/disminución de pausa
' superior y bot en direcciones opuestas
' Esta rutina SeqOnOff no escrita todavía, todavía idéntico al anterior
' Para el ctr2 = 0 para lpctr1
' enciende secuencialmente una cadena CW en un momento
' Para ctr1 = 0 a 7
' Alta ctr1
' GOSUB Drivemodule12
' Pausa delay2-(ctr2*(delay1-100)/2)
' SIGUIENTE
' luces off secuencialmente una cadena de CW en un momento
' Para ctr1 = 0 a 7
' Ctr1 baja
' GOSUB Drivemodule12
' Pausa 100+(ctr2*(delay1-100)/2)
' SIGUIENTE
' Siguiente ' termina con todas las luces
' HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
' Subrutina de AAA Circulate1 AAAAAAAAAAAAAAAAAAAAAAA
3 encendido cadenas chase, aumentando la velocidad cada repetición
' circula 4 veces, repite veces lpctr2 al azar
' parte superior e inferior están en fase de
' Circulate1:
PARA ctr2 = 0 para lpctr2
OUTL = % 00000001 ' luz 1,2,3 cuerdas top & bot antes de entrar en bucle persiguiendo
GOSUB Drivemodule12
PAUSA 150-(ctr2*15)
OUTL = % 00000011
GOSUB Drivemodule12
PAUSA 150-(ctr2*15)
lowerlamps = % 00000111 ' lowerlamps variable utilizada para superior e inferior juntos
subpause = 150-(ctr2*15)
shiftcount = 9
GOSUB ShiftLeftBoth
SIGUIENTE ' termina con todas las luces
' AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
' Subrutina brillante GirlsGirlsGirls suplente PPP PPPPPPPPPP
' parpadea entre cadenas adyacentes, superiores e inferiores alternando
' Espumoso se produce cuando la cadena del tiempo es corto, alrededor de 100
' GirlsGirlsGirls:
PARA ctr2 = 0 a 16
OUTL = % 01010101
GOSUB Drivemodule1
OUTL = % 10101010
GOSUB Drivemodule2
PAUSE 100
OUTL = % 10101010
GOSUB Drivemodule1
OUTL = % 01010101
GOSUB Drivemodule2
PAUSE 100
SIGUIENTE ' termina con luces en última posición
' PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
' DDD RotatePairs subrutina DDDDDDDDDDDDDDDDDDD
' rotación pares de cadenas enfrente uno del otro
' RotatePairs:
OUTL = % 00000000 ' borrar todas las luces OFF
PARA ctr2 = 0 para lpctr2
PARA ctr1 = 0 a 3
Ctr1 alta
Ctr1 alta + 4
GOSUB Drivemodule12
Delay1 de pausa
Ctr1 baja
Ctr1 baja + 4
GOSUB Drivemodule12
SIGUIENTE
SIGUIENTE ' termina con luces en última posición
' DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
' EEE CounterRotate EEEEEEEEEEEEEEEEEEEEEEEEEEE
' counterrotating pares
' CounterRotate:
PARA ctr2 = 0 para lpctr1
OUTL = % 10000000
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 01000001
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 00100010
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 00010100
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 00001000
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 00010100
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 00100010
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 01000001
GOSUB Drivemodule12
Delay1 de pausa
SIGUIENTE ' termina con luces en última posición
' EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
OUTL = % 00000000 ' apagar todas las luces
GOSUB Drivemodule12
Delay1 de pausa
' Subrutina de brillo de estrellas FFF FFFFFFFFFFFFFFFFFFFFFFF
' patrón de estrella A-F-C-H-E-B-G-D, abajo queda arriba por 1 ciclo
' Destellos debido a cortocircuito en pausa de tiempo de 100
' Antigua versión de la estrella tuvo un retraso que cambia con cada lazo
' con esta fórmula - delay1-(ctr2*(delay1-100)/lpctr1)
' Star:
PARA ctr2 = 0 para lpctr2
OUTL = % 00000001
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00100000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00000001
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00000100
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00100000
GOSUB Drivemodule2
PAUSE 100
OUTL = % 10000000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00000100
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00010000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 10000000
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00000010
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00010000
GOSUB Drivemodule2
PAUSE 100
OUTL = % 01000000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00000010
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00001000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 01000000
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00000000
GOSUB Drivemodule1
PAUSE 100
OUTL = % 00001000
GOSUB Drivemodule2
PAUSE 100
OUTL = % 00000000
GOSUB Drivemodule2
PAUSE 100
SIGUIENTE ' termina con la luz
PAUSE 1500
' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
' Subrutina BBB Circulate2 BBBBBBBBBBBBBBBBBBBBBBBBB
3 encendido cadenas chase, aumentando la velocidad cada repetición
' circula 4 veces, lpctr1 veces
' parte superior e inferior son 90 grados fuera de fase
' recordatorio - module1 es superiores lámparas, módulo 2 es más bajas
' Circulate2:
PARA ctr2 = 0 para lpctr1
OUTL = % 00000001 ' luz 2 cuerdas top & bot antes de entrar en bucle persiguiendo
GOSUB Drivemodule1
PAUSA 150-(ctr2*15)
OUTL = % 00000011
GOSUB Drivemodule1
PAUSA 150-(ctr2*15)
OUTL = % 00000111
GOSUB Drivemodule1
OUTL = % 00000001
GOSUB Drivemodule2
PAUSA 150-(ctr2*15)
OUTL = % 00001110
GOSUB Drivemodule1
OUTL = % 00000011
GOSUB Drivemodule2
PAUSA 150-(ctr2*15)
OUTL = % 00011100
GOSUB Drivemodule1
OUTL = % 00000111
GOSUB Drivemodule2
PAUSA 150-(ctr2*15)
upperlamps = % 00011100
lowerlamps = % 00000111
PARA ctr1 = 1 a 8 ' cambio 3 encendido cuerdas aproximadamente 1 vuelta completa hasta que todos de
upperlamps = upperlamps << 1
lowerlamps = lowerlamps << 1
OUTL = upperlamps
GOSUB Drivemodule1
OUTL = lowerlamps
GOSUB Drivemodule2
PAUSA 150-(ctr2*15)
SIGUIENTE
SIGUIENTE ' termina con todas las luces
' BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
' GGG GirlsGirlsGirls suplente subrutina GGGGGGGGGGGGGGGG
' parpadea entre cadenas adyacentes, superiores e inferiores alternando
' GirlsGirlsGirls:
PARA ctr2 = 0 para lpctr2
OUTL = % 01010101
GOSUB Drivemodule1
OUTL = % 10101010
GOSUB Drivemodule2
Delay1 de pausa
OUTL = % 10101010
GOSUB Drivemodule1
OUTL = % 01010101
GOSUB Drivemodule2
Delay1 de pausa
SIGUIENTE ' termina con luces en última posición
' GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
OUTL = % 00000000 ' apagar todas las luces
GOSUB Drivemodule12
Delay1 de pausa
' MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
' Subrutina de ChasePair III IIIIIIIIIIIIIIIIIIII
' Un par separado por 1 CCW rotación en blanco
' ChasePair:
PARA ctr2 = 0 para lpctr2
lowerlamps = % 10100000
shiftcount = 6
subpause = delay2-(ctr2*(delay1-100)/lpctr1)
GOSUB ShiftRightBoth ' use subrutina al patrón de cambio a la derecha
OUTL = % 10000010 ' hacer manualmente esta posición luz
GOSUB Drivemodule12 ' porque cambio rellena con ceros
PAUSA delay2-(ctr2*(delay1-100)/lpctr1)
lowerlamps = % 01000001
shiftcount = 1
GOSUB ShiftRightBoth
SIGUIENTE ' termina con luces en última posición
' IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
' Subrutina de FlashQtrs KKK KKKKKKKKKKKKKKKKKKKKK
' parpadea trimestres del árbol: rojo-verde y blanco-azul
' FlashQtrs:
PARA ctr2 = 0 para lpctr2
OUTL = % 00110011
GOSUB Drivemodule12
Delay2 pausa
OUTL = % 11001100
GOSUB Drivemodule12
Delay2 pausa
SIGUIENTE ' termina con luces en última posición
' KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
' Subrutina LLL GirlsGirlsGirls LLLLLLLLLLLLLLL
' parpadea entre cadenas adyacentes
' GirlsGirlsGirls:
PARA ctr2 = 0 para lpctr2
OUTL = % 01010101
GOSUB Drivemodule12
Delay1 de pausa
OUTL = % 10101010
GOSUB Drivemodule12
Delay1 de pausa
SIGUIENTE ' termina con luces en última posición
' LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LOOP ' parte inferior del bucle principal
'---Subrutinas---
' La subrutina Drivemodule escribe el byte de datos que aparecen en los puertos 0-7
' al módulo de la dirección o direcciones de llaman hacia fuera en el nombre de la subrutina.
' Para el 74LS573 cierres esto significa conducir las líneas de control seleccionado
' de bajo a alto entonces conducir todas las líneas de control a la baja otra vez.
' Los bits de control será todo bajos al entrar y salir de esta rutina.
' Puerto 8 controla el módulo 1, módulo de control de puertos 9 2, etc, así que este estilo
' módulo de direccionamiento puede ampliarse a 64 cuerdas individuales de luz.
' control byte módulo 1 - % 00000001
' control byte módulo 2 - % 00000010
' control de bytes para los módulos 1 y 2 - % 00000011
' Módulo 1 controla las cadenas luz 8 superiores, módulo 2 los inferiores
' Tenga en cuenta que se pueden abordar varios módulos al mismo tiempo, aunque
' cada módulo recibirá los bits de control de la luz misma de puertos 0-7 de esa manera.
' Nota de futuro desarrollo - el actual estilo de programación utilizando diferentes
' subrutinas para cada combinación de módulos utiliza mucho menos espacio que
' define una variable de control y llamar a una rutina única, pero este estilo
' puede obtener cutre para 3 o más módulos y combinaciones de las mismas.
Drivemodule1:
OUTH = % 00000001
OUTH = % 00000000
VOLVER
Drivemodule2:
OUTH = % 00000010
OUTH = % 00000000
VOLVER
Drivemodule12:
OUTH = % 00000011
OUTH = % 00000000
VOLVER
' La toma de las subrutinas de ShftX8X en un byte de los valores de la lámpara, muestra entonces
' cambia de puesto, haciendo este veces < shiftcount >.
' Las primera cuatro subrutinas manija izquierda y derecha cambio de lámparas superiores e inferiores.
' Los dos últimos desplazamiento 8 bits superiores e inferiores, utilizando la variable lowerlamps.
' Pase en variables Subctr1, shiftcount, subpause y más bajo - o upperlamps;
' cambia el valor de OUTL e inferior o upperlamps.
' Nota: las dos - shiftlower-rutinas no han sido utilizadas aún
' Como con el módulo de conducción de rutina, aún ocupa menos memoria que
' rutinas individuales para las operaciones de cada cambio posible en lugar de utilizar
' más universal unas rutinas Whne allí es una variable de control diseñada
' para el módulo de conducción de rutina, entonces usando esa rutina eliminará
' la necesidad de duplicar cambiando las rutinas.
ShiftLeftUpper:
PARA subctr1 = 1 para shiftcount
OUTL = upperlamps
GOSUB Drivemodule1
Subpause de pausa
upperlamps = upperlamps << 1
SIGUIENTE
VOLVER
' ShiftLeftLower:
' Para subctr1 = 1 para shiftcount
' OUTL = lowerlamps
' GOSUB Drivemodule2
' Subpause de pausa
' lowerlamps = lowerlamps << 1
' SIGUIENTE
' VOLVER
ShiftRightUpper:
PARA subctr1 = 1 para shiftcount
OUTL = upperlamps
GOSUB Drivemodule1
Subpause de pausa
upperlamps = upperlamps >> 1
SIGUIENTE
VOLVER
' ShiftRightLower:
' Para subctr1 = 1 para shiftcount
' OUTL = lowerlamps
' GOSUB Drivemodule2
' Subpause de pausa
' lowerlamps = lowerlamps >> 1
' SIGUIENTE
' VOLVER
ShiftLeftBoth:
PARA subctr1 = 1 para shiftcount
OUTL = lowerlamps
GOSUB Drivemodule12
Subpause de pausa
lowerlamps = lowerlamps << 1
SIGUIENTE
VOLVER
ShiftRightBoth:
PARA subctr1 = 1 para shiftcount
OUTL = lowerlamps
GOSUB Drivemodule12
Subpause de pausa
lowerlamps = lowerlamps >> 1
SIGUIENTE
VOLVER