Guía de Prácticas

Anuncio
UNIVERSIDAD DE OVIEDO
Departamento de Ingeniería Eléctrica,
Electrónica, de Computadores y Sistemas
Guía de Prácticas
ASIGNATURA:
CENTRO:
ESTUDIOS:
CURSO:
CARÁCTER:
PROFESORADO:
Informática Industrial y Comunicaciones
Escuela Politécnica de Ingeniería de Gijón
Grado en Ingeniería Electrónica y Automática
3º
CUATRIMESTRE: 1
Obligatoria
CRÉDITOS ECTS: 6
Ignacio Alvarez, José Mª Enguita
PRACTICA 10:
Uso de interrupciones y otras funciones de C
1. Sobre el simulador, se desea escribir en el display LCD cada 1 seg la fecha y hora, mientras se
espera por una cadena de caracteres que indique el formato en que se desea. La cadena de
caracteres tendrá la forma SET DATE="formato", donde formato puede contener, además de
otros caracteres:
DD: se desea escribir el día.
MM: se desea escribir el mes.
YY: se desea escribir el año (2 últimas cifras).
YYYY: se desea escribir el año (4 cifras).
hh: se desea escribir la hora.
mm: se desea escribir el minuto.
ss: se desea escribir el segundo.
Otros caracteres: se escriben dichos caracteres.
Por ejemplo, el comando:
SET DATE = "DD/MM/YYYY – hh:mm"
Tendrá como efecto que en el display se visualice:
2. Obtención del tiempo (ver ayuda de las diferentes funciones con F1; funciones disponibles con
búsqueda Google: MSDN C run time library reference):
#include <sys/types.h>
#include <sys/timeb.h>
#include <time.h>
…
struct _timeb now;
struct tm *hms;
..
_ftime( &now );
hms = localtime( &now.time );
printf("%02d:%02d:%02d:%03d\n",hms->tm_hour,hms->tm_min, hms->tm_sec,now.millitm);
3. Solución propuesta:
 Dado que el nº de caracteres a utilizar por cada elemento es el mismo que los que ocupa
dicho elemento en la cadena, se puede realizar sustituciones con strncpy( ). Ej:
char texto[]="DD/MM/YYYY – hh:mm"
char aux[10];
int anyo=2015;
char *pt;
pt = Buscar "YYYY" en el texto
Si se ha encontrado:
sprintf(aux,"%04d",anyo);
Copiar 4 caracteres desde aux hacia pt con strncpy() (no se copia el nulo)
printf("El texto resultante es: %s\n",texto);
4. Ampliaciones propuestas:
 Añadir la opción de formato:
DDD: se desea escribir el día de la semana (3 primeros caracteres).
 Añadir la opción de formato:
DDDD: se desea escribir el día de la semana (todos los caracteres). Atención, ahora no es
posible utilizar directamente la estrategia anterior, ya que el tamaño del día de la
semana es variable y mayor que el espacio disponible.
 Guardar en un archivo de texto los diferentes comandos recibidos en el control del
simulador, incluyendo la fecha y hora de cada uno.
Descargar