En la clase de mañana vamos a trabajar con el ejemplo de display multiplexado de 4 dígitos que vieron en el práctico, pero haciendo que las interrupciones sean generadas por los bloques Timer y Contador.
La idea es probar el diseño que completaremos en clase usando la placa, así que los que quieran y puedan llevar computadora y placa bienvenidos.
Si les da el tiempo descarguen además:
- El demo de interrupciones en modo 1:
https://eva.fing.edu.uy/mod/resource/view.php?id=23827
- El sistema suministrado para el Laboratorio 3:
https://eva.fing.edu.uy/pluginfile.php/60163/mod_resource/content/8/files/archivos_quartus_lab3-v3.zip
En el archivo adjunto hay una versión modificada de la rutina de atención a la interrupción que hicieron en el práctico, que utiliza los display de la placa DE0. Si bien en esta placa podemos escribir a la vez en los 4 dígitos, igual es conveniente manejar el display en forma multiplexada para disminuir el consumo. Dado que en cada momento hay solo un dígito encendido en lugar de cuatro, el consumo se baja a la cuarta parte.
El código del archivo adjunto está pensado para ejecutar con el sistema del demo de interrupciones que está disponible para descargar en la página.
El plan para la clase es:
1) Entender y probar la rutina de atención a interrupción del archivo adjunto con el hardware del demo de interrupciones, generando la interrupción con el pulsador de la placa.
2) Modificar el hardware suministrado para el laboratorio 3 de manera que el único dispositivo que genera interrupciones sea el bloque contador, trabajando en MODO 1 de interrupciones.
3) Modificar el programa del archivo adjunto agregando la inicialización de los bloques timer y contador para generar una interrupción periódica y probarlo con el hardware modificado en (2).
4) Si da el tiempo probar, una o varias de las siguientes variantes:
- Desplegar un texto de más de 4 caracteres desplazándolo como en una marquesina.
- Cambiar el sentido de desplazamiento del texto.
- Pasar a trabajar en modo 2 de interrupciones usando el controlador de interrupciones.