Hola buenas, mi consulta viene por el programa de prueba.
Cuando pide mostrar en los 4 digitos 7 segmentos el desplazamiento X o Y.
Debemos tomar el conjunto de desplazamientos como [-256,255] dado que viene de un complemento a 2 de 9 bits (que en la subrutina get_packet se cambia a 16 bits), o podemos tomarlos como [-99,99] para poder reusar las subrutinas del laboratorio anterior?
En otras palabras, que se deberia ver en los displays 7 segmentos??
Debo mostrar:
MSB del Byte alto en display 3
LSB del Byte alto en display 2
decenas del desplazamiento (MSB del Byte bajo) en display 1
unidades del desplazamiento (LSB del Byte bajo) en display 0 ?
La idea en todos los programas de prueba es verificar que la subrutina que están diseñando funciona bien.
Para eso lo que necesitamos es desplegar de alguna forma inteligible el valor de los desplazamientos.
Recuerden que lo que hace la subrutina pbcda7seg es convertir cada dígito de 4 bits usando a la subrutina hexa7seg. Por lo tanto no hace falta que el nro original sea un packed BCD válido entre 00 y 99. Pueden convertir cualquier nro binario, y lo que van a obtener son los 4 dígitos hexadecimales. Eso les permite representar todos los posibles valores de 16 bits. En resumen, usen pbcda7seg sin invocar antes binapbcd.
Haciendo así, lo que se va a observar en los displays es lo que tu dices a partir de "Debo mostrar:", al menos si MSB y LSB se refieren a bloques de 4 bits.
Será responsabilidad del que observa el display darse cuenta si es un valor positivo o negativo, pero van a ver que eso se nota fácil.
Para eso lo que necesitamos es desplegar de alguna forma inteligible el valor de los desplazamientos.
Recuerden que lo que hace la subrutina pbcda7seg es convertir cada dígito de 4 bits usando a la subrutina hexa7seg. Por lo tanto no hace falta que el nro original sea un packed BCD válido entre 00 y 99. Pueden convertir cualquier nro binario, y lo que van a obtener son los 4 dígitos hexadecimales. Eso les permite representar todos los posibles valores de 16 bits. En resumen, usen pbcda7seg sin invocar antes binapbcd.
Haciendo así, lo que se va a observar en los displays es lo que tu dices a partir de "Debo mostrar:", al menos si MSB y LSB se refieren a bloques de 4 bits.
Será responsabilidad del que observa el display darse cuenta si es un valor positivo o negativo, pero van a ver que eso se nota fácil.