TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: quodigital en 13 de Marzo de 2007, 01:16:36
-
Hola, estoy emopesando con esto de los pic y realmente estoy muy entusiasmado, tengo un problemita, quiero hacer un contador de 60 segundos retrocediendo a cero, es para que uno meta la ficha y tenga 60 minutos o 30 minutos de juego, hasta ahy esta todo bien, el drama es cuando ingreso otra ficha quedando 45 minutos, hace cualquier cosa,
Se entiende?
aca les dejo el programita..
*****************************
device 16f84a ' DESIGNO PIC
XTAL 4 ' VELOCIDAD
dim x as byte
run:
PRINT $fe, 1:delayms 30
print $fe, 128, "INSERTE FICHA"
delayms 100
if porta.0 = 0 then inicio
PRINT $fe,1
goto run
inicio:
X=60
minuto:
x=x-1
print $fe, 128, "LE QUEDAN = ", DEC x , " MI"
if x=0 then run
if porta.0 = 0 then suma
delayms 1000
goto minuto
suma:
x=x+60
goto minuto
***********************************************************************
y aca la imagen
(http://www.quodigital.com.ar/01/ficha1.JPG)
-
Hola Quo
Min ó seg? :) bueno para el caso es lo mismo! :D A simple vista veo que usas la x y la X seria conveniente que le coloques un nombre para no acarrear errores, cada vez que ingresas una nueva ficha deberias consultar si ha terminado el tiempo de la ficha anterior ó el TIEMPO DE JUEGO sino ha terminado simplemente lo sumas... se entiende? o simplemente que coloque CREDITO = 2 y dejas finalizar el tiempo de la primer ficha y luego refrescas el dato en CREDITO quedando 1..... eso quedaria tu gusto.- es una idea!! tb observo algunos GOTO de mas!!espero que te sirva.-
Espero tus modificaciones!!
saludos
-
Hola, entiendo mas o menos, si coloco credito=1 es 1... no 60 mi o seg, yo lo he sumado pero se suma cualquier cosa, parece que es el efecto rebote del boton, le puse un delayms y no sima de 60 a 60, es cualquier suma, y el tema de rebote, si vamos a la realidad es un defecto porque imaginate que el chico mete dos fichas juntyas, cuenta una nomas (no taria mal :mrgreen: :mrgreen: :mrgreen:)... Se entiende... haa otra cosa son medio nuevo y me falta estudiar algunas instrucciones alomejor hay alguna instruccion que lo hace mas facil pero no he llegado hay parece..
Si tenes alguna otra opinion seria buenisimo
Chau suerte
-
Hola logre que se sume, pero igual no sirve, el efecto del boton es malo, se demora en precionar, si meten tre a cuatros fichas el tiempo se reduce no se el porque, en fin es chiquito el programa pero ahy algo que no lo logro entender y realemente me he puesto y no logro saber que es..
aca dejo el codigo por las dudas si alguien quiere echar una mano
device 16f84a ' DESIGNO PIC
XTAL 4 ' VELOCIDAD
dim tiemp as byte
run:
tiemp=0
PRINT $fe, 1:delayms 30
print $fe, 128, "INSERTE FICHA"
delayms 100
if porta.0 = 0 then tiemp=60:goto inicio
PRINT $fe,1
goto run
inicio:
tiemp=tiemp-1
print $fe, 128, "LE QUEDAN = ", DEC tiemp , " MI"
delayms 1000
if porta.0=0 then tiemp=tiemp+60:goto inicio
if tiemp=0 then run
goto inicio
Muchas Gracias Suerte a todosss..!!!
-
si meten tre a cuatros fichas el tiempo se reduce no se el porque,
Puede ser por esto:
La variable donde tenes la cantidad de minutos guardada es un byte, o sea, que puede tener valores de 0 a 255. Cuatro fichas son 60 * 4 = 240. Cuando pones la quinta, serian 60 * 5 = 300. La variable se desborda, y (esto es meramente especulativo) posiblemente se quede con el "modulo" de 300 y 256, que es 44, por lo que te parece que el "tiempo se reduce"......
¿Puede ser?
Saludos!
-
Haa si puede ser, no lo había pensado , voy a ponerle otra variable, como Word, o no se, veo pero esta bueno, muchas gracias, por la ayudita.. :-/ :-/
Son pequeñas cosas que uno a veces no ve porque se hace un lio en la cabeza y no ve los detalles, por eso digo hay que ser muy ordenado a la ora de programar (cosa que yo no soy)...
Saludos
Suerte
-
Probalo y contanos, asi ya lo "aprendemos" para la proxima. Por que solo es una suposicion mia, nunca lo habia experimentado. :)
-
Hoola aitopes, realmente tenias razon en lo que me dijiste, si pongo Byte hera hasta 256, le puse word y suma hasta lo que de el lcd.
Lo que dijiste funciono a la perfeccion.. :mrgreen: :mrgreen:
Muchas Gracias..!!!
-
Se me olvido poner el programa, aca esta
device 16f84a ' DESIGNO PIC
XTAL 4 ' VELOCIDAD
dim tiemp as word
run:
tiemp=0
PRINT $fe, 1:delayms 30
print $fe, 128, "INSERTE FICHA"
delayms 100
if porta.0 = 0 then tiemp=60:goto inicio
PRINT $fe,1
goto run
inicio:
tiemp=tiemp-1
print $fe, 128, "LE QUEDAN = ", DEC tiemp , " MI"
delayms 1000
if porta.0=0 then tiemp=tiemp+60:goto inicio
if tiemp=0 then run
goto inicio