Saludos a Todos!
Disculpen la molestia amigos, pero ya no doy +....
Estoy trabajando hace +d un mes en un Control de puntaje para basquet. Pero dado el tiempo he completado el codigo, poco a poco, hasta que por fin lo termine y lo simule.
:(comienzan los dolores de cabeza
.
Si no es mucha molestia les explico el funcionamiento y los problemas que me da.
Comienza el programa y muestran mensajes de presentación...
aparece el primer mensaje luego borra y muestra el segundo mensaje.
>>>1º inconveniente
el timer0 comienza a contar una vez que configuro el prescaler con las siguientes lineas de codigo
banco 1 ; Cambio al banco 1
movlw b'10000111' ; Prescaler de 256 asignado al TMR0
movwf OPTION_REG ; resistencias de Pull-Up del Puerto B.
Luego de que configuro el Timer0 pero aun no autorizo las interrupciones del mismo.
por que? cuenta y cuenta y si no lo he activado o me equivoco?
pero si no configuro el presacaler no pasa s error(No se incrementa la cuenta del timer)
hago la configuracion inicial se borra o cargan los contenidos iniciales, llega al inicio del juego.
Considerando el segundo caso,presiono start(tecla A)
sigo simulando y bueno, se carga el reloj, uso el timer0 para que se produzk una interrupcion cada 50ms, cuento 20 veces y tengo mi interrupción cada segundo.
decrementa bien el tiempo si lo dejo sin presionar ninguna tecla extra.
Cuando trato de realizar las otras operaciones como incrementar puntaje del
equipo local con las teclas 1,2,3 ,al principio si lo logra incrementa bien el puntaje
luego ya no responde las teclas de incrementar puntaje y para terminar aparece el siguiente error.
Warning: [U1] at 213.632 (PC=0x0419): Stack underflow executing RETURN instruction.
Warning: [U1] at 213.632 (PC=0x0411): Stack overflow executing CALL instruction.
Warning: [U1] at 213.632 (PC=0x0419): Stack underflow executing RETURN instruction.
esto me pasa cuando voy por mas de 21 puntos a veces .
Cuando trato de realizar las otras operaciones como incrementar puntaje del
equipo local con las teclas 4,5,6 ,al principio si lo logra incrementa bien el puntaje
luego aparece el siguiente error.
Warning: [U1] at 213.632 (PC=0x0419): Stack underflow executing RETURN instruction.
Warning: [U1] at 213.632 (PC=0x0411): Stack overflow executing CALL instruction.
Warning: [U1] at 213.632 (PC=0x0419): Stack underflow executing RETURN instruction.
esto me pasa cuando voy por los mas de 21 puntos a veces.
despues de varios minutos el teclado no responde.
Que estoy haciendo mal alguna pista en especial a lo del timer al comienzo del programa y luego con lo del stack?
En algo influyen los Macros, claro con las llamadas a subrutinas???
Me podrian ayudar con una guia para poder completar mi proyecto. Por Favor.
O si alguien esta interesado en unirse al proyecto y lo terminamos en conjunto.
Si no es mucha molestia alguna sugerencia para reestructurar el codigo, eliminar los SAA1064( que obligatoriamente lo tengo q hacer por q n mi pais no venden... que pena) y utilizar multiplexaciòn de los displays a 7 segmentos, si es de cambiar la frecuencia del oscilador no importa pero nunca lo he intentado( se me pone uso del CPU al 100% cuando simulo, pero si he leido los post anteriores respecto al tema, el unico inconveniente es que no se como reestrucrurar el codigo y en que momento utilizarlo.
Muchas gracias por su atencion y pronta respuesta...
Adjunto archivos, codigo fuente y de simulación.