TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: quodigital en 13 de Marzo de 2007, 01:16:36

Título: Problemas con programita SUma minutos
Publicado 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)

Título: Re: Problemas con programita SUma minutos
Publicado por: doppel en 13 de Marzo de 2007, 02:31:42
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
Título: Re: Problemas con programita SUma minutos
Publicado por: quodigital en 13 de Marzo de 2007, 03:26:03
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
Título: Re: Problemas con programita SUma minutos
Publicado por: quodigital en 14 de Marzo de 2007, 01:18:07
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..!!!
Título: Re: Problemas con programita SUma minutos
Publicado por: aitopes en 14 de Marzo de 2007, 11:10:08
Citar
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!
Título: Re: Problemas con programita SUma minutos
Publicado por: quodigital en 14 de Marzo de 2007, 13:05:45
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
Título: Re: Problemas con programita SUma minutos
Publicado por: aitopes en 14 de Marzo de 2007, 14:52:19
Probalo y contanos, asi ya lo "aprendemos" para la proxima. Por que solo es una suposicion mia, nunca lo habia experimentado. :)
Título: Re: Problemas con programita SUma minutos
Publicado por: quodigital en 15 de Marzo de 2007, 01:42:15
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..!!!
Título: Re: Problemas con programita SUma minutos
Publicado por: quodigital en 15 de Marzo de 2007, 01:43:26
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