Laboratorio de Sistemas Digitales


Noticias
Grupos
Turnos de laboratorio
Práctica 1
Práctica 2
Práctica 3
Recursos & Links
    15-6-1999 - IMPORTANTE: Servidor Vulcano no funciona
  • Acabo de recibir notificación de un problema hardware en este servidor, que se espera solucionar lo antes posible.
    Como esa máquina es el servidor del laboratorio de Sistemas Digitales, no podréis acceder a vuestros ficheros hasta que este error se solucione.
    Perdonad las molestias.

28-5-1999 - Sugerencias práctica 3

  • Ya ha pasado la primera semana con esta nueva práctica. ¿que tal ha ido el diseño? ¿Teneis ya estructurado el funcionamiento del programa? ¿Habeis empezado a escribir código?
    Aqui van unas sugerencias para el diseño del programa. En cualquier caso solo son eso, sugerencia. Estoy seguro que no es la mejor forma de enfocar el problema y que alguno de vosotros ya ha pensado en otras estructuras mejores.
    La intención de este mensaje no es que cambies vuestros diseño si ya los teneis hechos. unicamnete es una ayuda para aquellos grupos que andan un poco perdidos.
    El programa debe realizar 3 tareas básicas:
    1.- Refresco de displays: cada 5ms (para una frecuencia de 50Hz). La rutina se deberá encargar de activar el siguiente display y cambiar el dato que se muestra. Como es una rutina que se ejecuta muy frecuentemente debe tardar poco tiempo en ejecutarse. No es necesario calcular cada vez el valor que se va a visualizar, pues esots solo cambian 1 vez por segundo (o cuando se pulsaun boton) por lo que se puede precalcular los datos a visualizar, guardarlos en unas posiciones de memoriay en esta rutina simplemente sacar el dato correcto por el puerto de salida.
    2.- Comprobación de pulsadores: Deberá ocurrir con una frecuencia suficiente para que no se pierdan pulsaciones de teclas (tipicamente 50 ms) . Ademas se deberá tener en cuenta las pulsaciones largas y detectar el cambio de estado de cada tecla y no unicamente cuando está activa. Lo más facil es comprobar tecla por tecla y cuando se detecte una pulsación realizar las tareas correspondientes.
    3.- Actualización de datos: esto ocurre cada segundo. Se toman las vueltas que se han dado y se calcula la nuveva velocidad, la velocidad media, etc. En este momento también se pueden calcular los valores de cada display. Esta es una rutina que durara bastante tiempo y hay que tener cuidado para no perder la actualización de los displays.
    Adicionalmente se podría considerar la tarea de contar las vueltas de la rueda. Si no se a conectado a un contador hay que tener en cuenta la frecuencia máxima de los impulsos de nueva vuelta y comprobar la correspondiente linea de entrada periodicamente. Por lo demas el proceso es como el de un botón,(incluso se podria incluir en la misma rutina).
    Consideraciones con respecto a la temporización.
    Este programa es bastante complejo, y su duración muy dependiente de los distintos estados del sistema, por lo que no es muy recomendable realizar retardos software. Lo más facil es utilizar temporizadores (TIMER0) para llevar la cuenta de los 5 ms de refresco. El resto de tiempos se puede hacer por software llevando la cuenta del número de veces que se ha vencido el temporizador hasta llegar a 50 ms o 1 s.
    Un problema adicional es que la rutina de actualización de datos es posible que tarde más de 5 ms, por lo que se debería partir en varias partes de duración menor del tiempo de refresco.
    Una solución mejor (o más sencilla) es utilizar un microcontrolador de la gama media, que tiene interrupciones. Activamos la interrupción de fin de cuenta del TIMER0 y nos avisa cuando pasan 5 ms para refrescar los displays. En este último caso en el programa principal se realizarian los calculos de actualizar los datos y aunque duren más de 5 ms no importa pues la interrupción para los calculos para refrescar el display.
    OJO: la rutina de actualizar datos no puede llamarse desde la rutina de tratamiento de la interrupción pues entonces no se soluciona el problema. Siempre hay que conseguir que la rutina de interrupción sea lo más corta (en tiempo) posible.
    Otras dudas comunes:
    - Si los datos de velocidades y distancias los alamcenais en binario tendreis que implementar una rutina para descomponer el dato binario en unidades, decenas... El algoritmo a utilizar es divididir entre 100 y obtienes las centenas el resto lo divides entre 10 y tienes las decenas y el resto son las unidades.(para los decimales se multiplica por 10).
    - Los displays no traducen de binario (o BCB) al dato de 7 segmentos, debereis hacerlo por software (una tabla?).

25-5-1999 - Nueva versión de MPALB 4.10

  • Ya está disponible la última versión del entorno de desarrollo de Microchip. La podeis encontrar en el servidor ftp de la escuela: MPLAB 4.10.

25-5-1999 - Comienzo práctica 3

  • Hoy comienza la tercera y última práctica del Laboratorio de Sistemas Digitales. El enunciado lo podeis encontrar en este servidor web, en reprografia o en el servidor ftp de la asignatura.
    La fecha de entrega es el 8 de Julio de 1999 (no de Junio, hay un error en el enunciado)
  • La información de microchip se puede encontrar también http://gtm.tel.uva.es/lsd/index.htm. El único inconveniente es que no esta información no está del todo actualizada pues es de enero de 1999. Aun así la mayoria de las 'Application notes' no se han modificado desde entonces.
    Noticias anteriores