[Práctica 2 - Teclado] *Duda sobre botton 0 como reset

[Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -
Número de respuestas: 7

Buenas Julio, probando la práctica nos surgió la siguiente duda. Nosotros compilamos y cargamos nuestro programa en ROM, lo utilizamos normalmente (funciona bien) y luego presionamos el botton 0 para resetear el sistema, por tanto la siguiente instrucción a ejecutar sería la ubicada en la dirección 0x0000, esto lo hace bien, realizando la inicialización descripta en nuestros programas de prueba pero luego de esto el sistema no recibe más información desde el teclado, osea el programa deja de funcionar ¿Qué podrá ser? Nos pasa con algunas subrutinas, no con todas. Por ejemplo en el programa de prueba de espero_flanco anda bien pero nos inicializa el contador (en los displays) en 1 luego del reset.

En respuesta a Denis Gabriel Peña Presa

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -
Aclaro que en el caso en que nos inicializa el contador de flancos en 1, en las instrucciones de inicialización de nuestro programa inicializamos el contador en 0
En respuesta a Denis Gabriel Peña Presa

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -
Ya lo corregimos, el problema es que en las instrucciones de inicialización de nuestros programas no estabamos borrando el flip-flop de detección de flancos, pensabamos que quedaba borrado luego de pasar por espero_flanco ¿Qué es lo que está pasando? las señales PSCLK_O y PSDAT_O durante la ejecución del programa se inicializan en 1, y PSCLK_I y PSDAT_I (que comparten el mismo cable, desde el punto de vista de la lógica del circuito, que las anteriores)están en 1 mientras no se esté presionando una tecla ¿Puede ser que al presionar el botton 0 estas señales bajen a 0 y por esto es que el flip-flop de detección de flancos quede en 1?
En respuesta a Denis Gabriel Peña Presa

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Julio Perez -
No debería pasar eso. Pueden mirar el circuito en sistema_top, el pulsador button[0] se usa solamente para conectarlo a /reset, no tiene relación con las otras entradas.
De cualquier manera es sano borrar ese ff en la inicialización porque podría estar prendido por una apretada de tecla (o del pulsador en modo manual) que hubiera sucedido mucho antes.
En respuesta a Julio Perez

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -
Sí, es raro porque nuestro programa, sin el borrado del FF, anda normalmente antes de presionar el reset (no cuenta ningun flanco de más) y vuelve al comienzo del loop del programa de manera correcta y con el FF borrado, pero a la hora de presionar reset (nuestro programa se encotraría al comienzo del loop esperando por ejemplo un flanco de bajada de reloj) es como si después de comenzado el programa luego del reset el programa automaticamente cuenta un flanco de bajada. Raro la verdad
En respuesta a Julio Perez

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -

 Acá en la imagen se puede ver, parado en un break al inicio del programa de prueba, luego de haber completado una vuelta al mismo, como el FF (detector de flancos) se encuentra borrado, pero luego de únicamente haber presionado el botton 0 y por consiguiente haber activado la señal reset, el valor del FF pasa a ser 1

En respuesta a Denis Gabriel Peña Presa

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Julio Perez -
Denis:
pero en este último caso lo que está grabado en ROM es el programa monitor que se comunica con el debugger, no el programa de ustedes. El loop que se está ejecutando es un loop del programa monitor, que ya estableció comunicación con el programa en el PC y está esperando recibir un nuevo comando, p. ej. monitor in (0xalgo).
Cuando apretás RESET lo que pasa es que vuelve a ejecutarse el programa monitor desde el comienzo, olvidándose de en qué estado estaba. Si la conexión con el gdb que corre en el PC sigue funcionando después de eso es por pura casualidad.

Igual eso no explica que se vuelva a prender el FF.
En respuesta a Julio Perez

Re: [Práctica 2 - Teclado] *Duda sobre botton 0 como reset

de Denis Gabriel Peña Presa -
No, sí eso ya sé, tal vez me expresé mal en el anterior comentario, quería decir que en cuanto a la ejecución de nuestro programa, que es el que eventualmente modifica el FF (borrandolo), se encontraba al comienzo del loop, por supuesto que en en cuanto a la ejecución total se hallaba corriendo el programa monitor . De todas formas no se deberían volver a encender el FF.