[2021][Febrero][Problema 5]

[2021][Febrero][Problema 5]

de Maria Sofia Camacho Lamboglia -
Número de respuestas: 3

Hola!

Estuve haciendo este ejercicio, y mi respuesta coincide exactamente (en términos del código) con la solución propuesta, solo que en mí caso toda la lógica y el switch que esta programado para el reloj, lo puse en el main. Tendría toda la lógica en el Main. Es esto un error? Y si lo es, qué es lo que no funciona? 

(Aclaración: el reloj sólo haría tics++ y en el main habría un switch que también incluye al estado normal)


Muchas gracias!

Sofia.

En respuesta a Maria Sofia Camacho Lamboglia

Re: [2021][Febrero][Problema 5]

de Gustavo Brown -

El problema se puede resolver poniendo en la rutina que atiende al timer tics++ y manejando todo el estado y transiciones en el bucle del programa principal.

Saludos,
  Gustavo

En respuesta a Gustavo Brown

Re: [2021][Febrero][Problema 5]

de Maria Sofia Camacho Lamboglia -
Muchas gracias por la pronta respuesta!

Ahora, me quedo una duda. Existe algún caso en particular en el que no se pueda usar esta metodología? Las maneras de resolver este tipo de ejercicios en los parciales son muy diferentes entre sí, y quería saber si esto era porque utilizar las otras metodologías es incorrecto o simplemente porque es fácil de implementar. (Por ejemplo: todo en las interrupciones vs todo en el main o mixto)

Saludos,
Sofía.
En respuesta a Maria Sofia Camacho Lamboglia

Re: [2021][Febrero][Problema 5]

de Gustavo Brown -

Como regla general, cuando la máquina es dedicada se puede poner toda la lógica en el main salvo ciertas actualizaciones de variables que dependen directamente de una interrupción (en el ejemplo de este examen sería por ejemplo el aumento del contador del reloj).

Sin embargo, en muchos casos queda una solución más compacta y legible distribuyendo adecuadamente la lógica entre el programa principal y las rutinas de atención a las interrupciones. 

Cuando la máquina es no dedicada ahí tenés que resolverlo todo en las rutinas de atención a interrupciones (salvo la inicialización del sistema que sigue yendo en el programa principal).

Saludos,
  Gustavo