Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DebouncedIn QEI RTC-DS1307 mbed
Fork of I2C by
Revision 5:d38b972a1813, committed 2015-11-23
- Comitter:
- GermanD
- Date:
- Mon Nov 23 14:44:24 2015 +0000
- Parent:
- 4:fa48e78e9bba
- Commit message:
- Tarea para configurar una alarma despertadora en el mes, a?o y hora que elijamos
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Nov 20 13:49:02 2015 +0000
+++ b/main.cpp Mon Nov 23 14:44:24 2015 +0000
@@ -7,7 +7,7 @@
Serial pc(USBTX, USBRX, "pc"); //Puertos para el PC
QEI wheel (PTD5, PTD0, NC, 100); //Configuracion encoder
DebouncedIn Boton(PTA13); //Boton Encoder
-DigitalOut led1(LED1); //Salida
+DigitalOut led1(PTD2); //Salida
int Dia=0;
int Mes=0;
@@ -28,10 +28,10 @@
{
pc.printf("*************************************\n");
pc.printf("* Menu for RTC Test : *\n");
- pc.printf("* read - reads the clock *\n");
- pc.printf("* start - start the clock *\n");
- pc.printf("* stop - stop the clock *\n");
- pc.printf("* write - write the clock *\n");
+ pc.printf("* leer - reads the clock *\n");
+ pc.printf("* empezar - start the clock *\n");
+ pc.printf("* parar - stop the clock *\n");
+ pc.printf("* configurar - write the clock *\n");
pc.printf("* ena - enable Square wave output *\n");
pc.printf("* dis - disable square wave outp. *\n");
pc.printf("*************************************\n");
@@ -41,45 +41,50 @@
buffer[readptr++] = c;
}
buffer[readptr++] = 0;
- if (strncmp(buffer, "read", 4) == 0)
+
+ // para leer los valores que tiene el reloj
+
+ if (strncmp(buffer, "leer", 4) == 0)
{
pc.printf("Performing read operation\n");
if (rtc.getTime(tm) )
{
- pc.printf("La hora actual es: %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec);
- pc.printf("La fecha actual es: %s, %02d/%02d/%04d\n", rtc.weekdayToString(tm.wday), tm.mon, tm.date, tm.year);
+ pc.printf("La hora es: %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec); // coloca en pantalla la hora actual que hay almacenada
+ pc.printf("La fecha es: %s, %02d/%02d/%04d\n", rtc.weekdayToString(tm.wday), tm.mon, tm.date, tm.year); // coloca en pantalla la fecha actual que hay almacenada
}
}
- else if (strncmp(buffer, "write", 5) == 0)
- {
+ else if (strncmp(buffer, "configurar", 5) == 0) // se empieza por configurar el reloj interno
pc.printf("Dia (0..31)");
- pc.scanf("%d", &tm.date);
+ pc.scanf("%d", &tm.date); // coloca lo que uno le ingrese como dia
pc.printf("Mes (1..12)");
- pc.scanf("%d", &tm.mon);
- pc.printf("Anno");
- pc.scanf("%d", &tm.year);
+ pc.scanf("%d", &tm.mon); // coloca lo que uno le ingrese como mes
+ pc.printf("Anio");
+ pc.scanf("%d", &tm.year); // coloca lo que uno le ingrese como año
pc.printf("Hora (0..23)");
- pc.scanf("%d", &tm.hour);
+ pc.scanf("%d", &tm.hour); // coloca lo que uno le ingrese como hora
pc.printf("Minutos (0..59)");
- pc.scanf("%d", &tm.min);
+ pc.scanf("%d", &tm.min); // coloca lo que uno le ingrese como minutos
pc.printf("Segundos (0..59)");
- pc.scanf("%d", &tm.sec);
+ pc.scanf("%d", &tm.sec); // coloca lo que uno le ingrese como segundos
pc.printf("Performing write operation\n");
while(pc.readable())
pc.getc();
rtc.setTime(tm, false, false);
}
- else if (strncmp(buffer, "start", 5) == 0)
+
+ // para empezar a correr el reloj que se programó arriba
+
+ else if (strncmp(buffer, "empezar", 5) == 0)
{
readptr = 0;
pc.printf("Dispositivo Iniciado\n");
rtc.startClock();
- goto set_alarma;
+ goto alarma;
}
- else if (strncmp(buffer, "stop", 4) == 0)
+ else if (strncmp(buffer, "parar", 4) == 0) // para parar el reloj
{
pc.printf("Performing stop operation\n");
rtc.stopClock();
@@ -103,12 +108,14 @@
}
readptr = 0;
}
-
- set_alarma: //se inicia a configurar la alarma
+
+ //se inicia a configurar la alarma
+
+ alarma:
pc.printf("Configuracion de la alarma\n");
- set_Dia: //empieza con el dia
+ Dia: //empieza con el dia
while(1)
{
Dia=Dia+wheel.getPulses(); //con el encoder se aumenta el dia
@@ -119,19 +126,19 @@
Dia=31;
}
else if (Dia<=0)
- { //no hay dias negativos, el valor se mantiene en 0 en caso de ingresar uno asi
+ { //no se pueden ingresar numeros negativos
Dia=0;
}
- pc.printf("Dia= %d\n",Dia); //muestra
+ pc.printf("Dia= %d\n",Dia); //muestra el valor
if(Boton.falling())
- { //con el enconder presionado pasamos a mes
- goto set_Mes;
+ { //presionando el encoder cambiamos al configurar el mes
+ goto Mes;
}
}
-set_Mes: //Configuracion del Mes para la alarma
+Mes: //Configuracion del Mes para la alarma
while(1)
{
@@ -144,7 +151,7 @@
Mes=12;
}
else if (Mes<=0)
- { //de igual forma mantiene en 0 a un valor menor
+ { //se mantiene en 0
Mes=0;
}
pc.printf("Mes= %d\n ",Mes); //muestra el mes
@@ -152,35 +159,36 @@
if(Boton.falling())
{
- goto set_Anio;
+ goto Anio;
}
}
- set_Anio:
+
+ Anio:
while(1)
{
Anio=Anio+wheel.getPulses();
wheel.reset();
- if(Anio>=3000) //se mantiene hasta el anio 3000 si se ingresa un anio mas grande
+ if(Anio>=3000) //se mantiene hasta el año 3000 si se ingresa un año mas grande
{
Anio=3000;
}
else if (Anio<=2015){ //como estamos en el 2015 una alarma no puede sonar antes de esa fecha
Anio=2015;
}
- pc.printf("Anno= %d\n",Anio);
+ pc.printf("Anio= %d\n",Anio);
- if(Boton.falling())
+ if(Boton.falling()) //presionando el encoder cambiamos a configurar la hora
{
- goto set_Horas;
+ goto Horas;
}
}
- set_Horas:
+ Horas:
while(1)
{
@@ -199,13 +207,13 @@
pc.printf(" Hora=%d\n ",Horas);
- if(Boton.falling()){
- goto set_Minutos;
+ if(Boton.falling()){ //presionando el encoder cambiamos a configurar los minutos
+ goto Minutos;
}
}
- set_Minutos:
+ Minutos:
while(1)
{
@@ -221,29 +229,31 @@
{
Minutos=0;
}
- pc.printf(" Min=%d\n ",Minutos);
+ pc.printf(" Minuto=%d\n ",Minutos);
if(Boton.falling())
{
- goto set_comp;
+ goto comp;
}
}
- set_comp:
+ comp: // para que muestre cuándo quedó configurada la alarma
pc.printf("La alarma se programara el: \n");
- pc.printf(" Dia=%d Mes=%d Anio=%d Hora=%d Min=%d Seg=%d\n ",Dia,Mes,Anio,Horas,Minutos,Segundos);
+ pc.printf(" Dia=%d Mes=%d Anio=%d Hora=%d Minuto=%d Segundo=%d\n ",Dia,Mes,Anio,Horas,Minutos,Segundos);
+
+ wait (3);
while(1)
{
rtc.getTime(tm);
- pc.printf("La hora actual es: %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec);
- pc.printf("La fecha actual es: %02d/%02d/%04d\n", tm.mon, tm.date, tm.year);
+ pc.printf("Hora actual: %02d:%02d:%02d\n", tm.hour, tm.min, tm.sec);
+ pc.printf("Fecha actual: %02d/%02d/%04d\n", tm.mon, tm.date, tm.year);
if(tm.hour>=Horas && tm.min>=Minutos &&tm.sec>=Segundos && tm.mon>=Mes && tm.date>=Dia && tm.year>=Anio){
led1=0;
- pc.printf("La alarma se ha activado: \n");
+ // pc.printf("La alarma se ha activado: \n");
}
else {
led1=1;
