[2022][Julio][Ejercicio 2]

[2022][Julio][Ejercicio 2]

de Osvaldo Mateo Hening Suarez -
Número de respuestas: 0

Buenas,

Tengo una duda respecto a la solución de este ejercicio, puntualmente en la rutina de atención a la interrupción timer(), cuando se define m_power: 

char m_power = v_obj < vi? 1 : 0; 

Por qué esta condición determina el estado del motor? la condición podría tomar el valor off cuando se pasa de una velocidad menor a una mayor, por ejemplo:

si en el instante de tiempo n los valores son v_obj = 7 y vi = 7,1 y el usuario aumenta la velocidad a 11 con el botón correspondiente, podría llegar a ocurrir que en el siguiente instante de tiempo (n+1) v_obj = 11 y vi sea menor a v_obj, pues la cinta demora un tiempo en alcanzar la velocidad objetivo según la letra, y esto provocaría, según la condición citada, que el motor figure como apagado.

Además, de la siguiente sentencia:

if (v_obj - TOL_DEC < vi && vi < v_obj + TOL_DEC)

se desprende que vi puede ser menor que v_obj, y esto no necesariamente significa que el motor esté apagado, sino que vi puede tomar un valor aproximado de v_obj tanto por encima de este como por debajo.

Gracias!