Oblig 3 - Interrupción parte d.1 (mouse)

Oblig 3 - Interrupción parte d.1 (mouse)

de Nicolas Fernando Machin Justet -
Número de respuestas: 5

Buenas, no estamos entendiendo que es lo que pide mostrar la parte b.1 (mouse). 

Dice lo siguiente: "La rutina de atención para esta interrupción deberá complementar el valor de una variable y escribirla en el dígito más significativo (HEX3) del display de 7 segmentos."

Nustras dudas son: ¿A que variable se refiere? ¿A la usada en la parte b?

¿A que se refiere con "complementar el valor" de esa variable?

Lo que se nos ocurre es hacerle un CPL a la variable utilizada en la parte b, que nos queda algo de 8 bits. Pero pide mostrarla en el display HEX3, que solo entran 4 bits (en formato bcd) y ahí nos perdemos de nuevo...

Gracias.

En respuesta a Nicolas Fernando Machin Justet

Re: Oblig 3 - Interrupción parte d.1 (mouse)

de Nicole Cabot Imperial -

Nosotras creamos una nueva variable en memoria y le pusimos un valor cualquiera, luego en la subrutina lo complementamos con un CPL. Lo que vas a mostrar en el HEX3 y en cualquier display es de 8 bits. Quizas te confundes por usar siempre pbcda7seg. Pbcda7seg toma 8 bits que están en empaquetado y lo devuelve en 2 displays. Ahora en la parte d de la práctica 3 no te dice nada sobre que esté empaquetado el valor de esta variable. Nosotras mostramos la variable como la mostraríamos en los leds, sin hacer nada más.

En respuesta a Nicole Cabot Imperial

Re: Oblig 3 - Interrupción parte d.1 (mouse)

de Nicolas Fernando Machin Justet -

Supongamos que mi variable es 00010110b --> Le aplico CPL y me da 11101001b --> En hexa es E9h, en decimal es 233. Si le paso eso directamente al display nos queda una cosa así:


No queda algo muy legible. Esto esta bien?

Gracias!

En respuesta a Nicolas Fernando Machin Justet

Re: Oblig 3 - Interrupción parte d.1 (mouse)

de Nicolas Fernando Machin Justet -

Podríamos usar los display HEX3 y HEX2 (que no se usa) y se vería mucho mejor creo. Pero sería salirnos de las especificaciones de la letra... 

En respuesta a Nicolas Fernando Machin Justet

Re: Oblig 3 - Interrupción parte d.1 (mouse)

de Julio Perez -

Nicolás:

la idea es probar la configuración del timer con una rutina de atención a la interrupción lo más simple posible.

Para eso simplemente lo que hacemos es en cada interrupción invertir el estado de una salida (si estaba apagada la prendemos, si estaba prendida la apagamos).

No te compliques con conversiones entre BCD/hexadecimal/binario/7segmentos. Si inicializás la variable en 0 vas a ver que todos los segmentos de HEX3 prenden y apagan cambiando cada 0.1seg.

Lo importante es verificar que estás configurando bien los bloques Timer y Contador.

Saludos,

julio