Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Etapa 3 Timer en segundos #138

Open
m-hadz opened this issue Nov 23, 2024 · 3 comments
Open

Etapa 3 Timer en segundos #138

m-hadz opened this issue Nov 23, 2024 · 3 comments

Comments

@m-hadz
Copy link

m-hadz commented Nov 23, 2024

Cuando hago MOV A,(4) quiero conseguir el valor del timer en segundos específico cuando hago la instrucción, pero mueve el timer completo, osea ahora en el registro A también hay un timer en segundos, digamos que A es 5, entonces estará 5, 6, 7, etc.
Esto está bien así? O es un error en vivado?

@Geeermy
Copy link
Contributor

Geeermy commented Nov 23, 2024

¡Hola!

Es un error. Al ejecutar MOV A,(4), guardas en el registro A el valor del timer en segundos en ese instante de tiempo. No debería volver a actualizarse en el registro salvo que lo hagas explícitamente con otra instrucción.

¡Saludos!

@Geeermy
Copy link
Contributor

Geeermy commented Nov 25, 2024

@m-hadz Dos dudas respecto a tu problema:

  1. ¿Ocurre esto con el clock a la máxima frecuencia?
  2. Si después de esas instrucciones dejas pegado el programa en un loop, ¿sigue el error? Por ejemplo:
MOV A,(sec)
MOV (dis),A
loop:
  JMP loop

Si este código funciona, entonces lo que probablemente ocurre es que, por la frecuencia al máximo de tu clock, el programa entero se recorre en menos de un segundo y tu Program Counter hace overflow, lo que genera que el programa se ejecute reiteradas veces. Como naturalmente el timer sigue avanzando, da la sensación de que se queda pegado con la última instrucción, pero en realidad es el script entero el que se ejecuta varias veces, dando la sensación de que el timer se actualiza constantemente.

Quedo atento por si con eso descartas tener errores de implementación.

¡Saludos!

@m-hadz
Copy link
Author

m-hadz commented Nov 25, 2024

Efectivamente, al final me acabe dando cuenta de que era porque el código se volvía a ejecutar, entonces si encapsulada el final con un loop infinito, se arreglaba todo, muchas gracias

# for free to join this conversation on GitHub. Already have an account? # to comment
Development

No branches or pull requests

2 participants