Buenas,
Me surgen dos dudas respecto a la solución. Primero igual, hay variables como tics o ruedaABS que nunca se definen.
Lo primero es sobre el punto 6 del algoritmo. Dice al final que debe hacerse de "forma inmediata". Eso en el examen me inclino a incorporar esa lógica en el loop del main. Entiendo que es debido a que el tiempo entre veces que hace interrupt la rutina del timer es despreciable entonces se incluye en la rutina del timer. Entonces, cuando corresponde ubicar lógica dentro del loop del main?
Lo segundo es sobre la lógica de los tics y como funciona un frenoABS que fue algo que interprete mal. Por qué si la rueda der es más lenta se evalua ticsGiroIzq < ticsGiroDer? Y esto vuelve a como se obtienen esos valores, cada vez que se interrumpe debido a la rutina giro_der se ejecuta ticsGiroDer = ticsDer. Que básicamente lo que hace ticsDer es contar cuantas veces se ejecuto la rutina del timer hasta que se ejecuta la rutina giro_der. Va lo mismo para la rueda izquierda, que viendo la solución, ticsDer y ticsIzq podrian ser una sola variable no? Que sea ticsTimer.
Me confundio bastante y lo que habia hecho fue una sola variable que contaba cuantas veces interrumpia giro_der para comparar haciendo ticsGiroDer < ticsGiroIzq (al reves que la solución) y hacerlas cero una vez equiparadas las velocidades o la lenta supero a la más rapida.
Saludos
(Editado por Belen Brandino - envío original domingo, 18 de julio de 2021, 17:52)