Práctica 2: barrel_shift_right

Práctica 2: barrel_shift_right

de Romina Belen Garcia Camargo -
Número de respuestas: 1

Hola, 

Tenemos varias consultas respecto a la letra del programa de prueba asociado a esta subrutina.

1. Se tienen dos variables contador de 16 bits donde se lleva la suma acumulada con los desplazamientos de X e Y. Estas variables deben actualizarse con cada entrada al loop, ¿no? Esto implicaría una suma en complemento a 2 de 16 bits, lo cual no es muy complejo pero sí es un poco largo. Queríamos asegurarnos de que esto es lo que se pide.

2. ¿A qué se refieren con "disminuir la sensibilidad ante los movimientos del ratón"? 

3. En el segundo párrafo de la descripción de la prueba, se habla de que los valores de los contadores "deben dividirse por 2^n antes de ser desplegados". Sin embargo, en el párrafo tres, se dice que "el valor acumulado de X se muestra previa división por 2^n en los 4 dígitos 7 segmentos". ¿Qué tenemos que desplegar? ¿El valor del contador correspondiente (según el SW 7) antes o después de dividirlo? 

4. En el cuarto párrafo, dice "mediante los switches se determinará el valor apropiado de corrimiento para lograr con comodidad variaciones de +1, -1, en los valores desplegados". No entendemos a qué se refiere esto, cuál es el objetivo de este ajuste y qué obtengo de los switches. No se refiere al valor de n de SW (0..3), ¿o sí? 

Muchas gracias,

Romina

En respuesta a Romina Belen Garcia Camargo

Re: Práctica 2: barrel_shift_right

de Julio Perez -
Romina:
1. Sí. En cada vuelta del loop, es decir cada vez que retorna get_packet, se debe actualizar la suma acumulada en complemento a 2 de 16 bits. No es tan largo hacer eso, revisá la cartilla de instrucciones, en particular las operaciones aritméticas de 16 bits. Lo único que tenés que resolver es que el valor de desplazamiento lo reciben en complemento a dos de 9 bits, deben extenderlo correctamente a 16 bits antes de poder hacer la suma.

2. Si no hacen ningún desplazamiento la sensibilidad al movimiento del ratón es grande, es decir, pequeños movimientos del ratón producen grandes variaciones en el valor desplegado. En la práctica 3 van a utilizar esto para ajustar el valor inicial de un timer, y tienen que poder ajustar ese valor en forma cómoda.

3. Cuando se dice que "El valor acumulado de X se muestra, previa división por 2n, en los 4 dígitos 7 segmentos..." se está diciendo que la división es previa a la acción de desplegarlo, no? Primero se divide, después se despliega. Además "El valor devuelto por la subrutina , se utiliza solamente para ser desplegado, no debe modificarse el valor de los contadores.", es decir que los contadores donde se guarda la suma acumulada no son afectados por el shift.

4. El programa de prueba debe leer los switches para saber cuántos lugares desplazar. Con eso pueden fácilmente manipular los switches para probar con distintos valores, y elegir con cuál valor de desplazamiento es posible con comodidad incrementar o decrementar de a 1 el valor desplegado. Ese valor de desplazamiento lo van a usar en la práctica 3.

julio