Conjunto de 4 alarmas on/off con reloj de tiempo real
Dependencies: Debounced QEI RTC-DS1307 TextLCD mbed
Revision 0:c498d1d3e2de, committed 2016-11-30
- Comitter:
- andJdmat
- Date:
- Wed Nov 30 01:59:24 2016 +0000
- Commit message:
- Conjunto de 4 alarmas on/off;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Debounced.lib Wed Nov 30 01:59:24 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/WarwickRacing/code/Debounced/#8992c13bbb9b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QEI.lib Wed Nov 30 01:59:24 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/aberk/code/QEI/#5c2ad81551aa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RTC-DS1307.lib Wed Nov 30 01:59:24 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/leihen/code/RTC-DS1307/#5627b407e097
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Wed Nov 30 01:59:24 2016 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/avallejopo/code/TextLCD/#aba8ab3dde9d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debug.h Wed Nov 30 01:59:24 2016 +0000
@@ -0,0 +1,16 @@
+#ifndef __DEBUG_H__
+#define __DEBUG_H__
+
+
+#ifdef DEBUG
+#define INFO(x, ...) std::printf("[INFO: %s:%d]"x"\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
+#define WARN(x, ...) std::printf("[WARN: %s:%d]"x"\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
+#define ERR(x, ...) std::printf("[ERR: %s:%d]"x"\r\n", __FILE__, __LINE__, ##__VA_ARGS__);
+#else
+#define INFO(x, ...)
+#define WARN(x, ...)
+#define ERR(x, ...)
+#endif
+
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Nov 30 01:59:24 2016 +0000
@@ -0,0 +1,1137 @@
+#include "mbed.h"
+#include "DebouncedIn.h"
+#include "TextLCD.h"
+#include "QEI.h"
+#include "Rtc_Ds1307.h"
+
+TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5, TextLCD::LCD20x4); // rs, e, d4-d7 Teclado
+Rtc_Ds1307 rtc(PTE0, PTE1);//SCL,SDA
+QEI wheel (PTA13, PTD5, NC, 624, QEI::X4_ENCODING);
+Serial pc(USBTX, USBRX, "pc");
+DebouncedIn b_en(PTC16);
+
+
+DigitalOut red(LED_RED);
+DigitalOut green(LED_GREEN);
+DigitalOut blue(LED_BLUE);
+
+PwmOut Sonido(PTA5);
+
+float periodo;
+float Frecuencia=4000;
+int C1=0x0C;
+int m,k,x1,x2,x3,x4;
+int numero=1;
+int Conf=0; // 0: Alarma y 1:Reloj
+int Lugar=0; // Definen el punto en el cual va el programa
+int i=0;
+int visual=0;
+int alarma=0;
+int a = 0;
+
+int main()
+{
+ Rtc_Ds1307::Time_rtc t = {};
+ Rtc_Ds1307::Time_rtc Hora = {};
+ Rtc_Ds1307::Time_rtc Alm = {};
+ Rtc_Ds1307::Time_rtc Alm2 = {};
+ Rtc_Ds1307::Time_rtc Alm3 = {};
+ Rtc_Ds1307::Time_rtc Alm4 = {};
+ Rtc_Ds1307::Time_rtc Alm_d = {};
+ Rtc_Ds1307::Time_rtc Alm2_d = {};
+ Rtc_Ds1307::Time_rtc Alm3_d = {};
+ Rtc_Ds1307::Time_rtc Alm4_d = {};
+ lcd.cls();
+ lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
+
+ periodo=(1/Frecuencia);
+ Sonido.period(periodo);
+
+ rtc.getTime(Hora);
+ rtc.stopClock();
+ while(1){
+ menu:
+ switch (Lugar){
+
+ case 0: //Menu principal
+ lcd.cls();
+ rtc.getTime(Hora); //lee el tiempo del DS1307
+ lcd.locate(0,0);
+ lcd.printf("%02d:%02d %02d/%02d/%02d", Hora.hour, Hora.min, Hora.date, Hora.mon, Hora.year);
+ lcd.locate(0,1);
+ lcd.printf("-Cambiar Hora");
+ lcd.locate(0,2);
+ lcd.printf("-Cambiar Alarma");
+ lcd.locate(0,3);
+ lcd.printf("-Visualizar");
+ m=wheel.getPulses(); // m son los datos del encoder
+ if(m!=0 && Conf==0){
+ Conf=1;
+ wheel.reset();
+ m=0;
+ }
+ if(m!=0 && Conf==1){
+ Conf=2;
+ wheel.reset();
+ m=0;
+ }
+
+ if(m!=0 && Conf==2){
+ Conf=0;
+ wheel.reset();
+ m=0;
+ }
+ if(Conf==0){
+ lcd.locate(0,1);
+ lcd.printf(">");
+ lcd.locate(0,2);
+ lcd.printf("-");
+ lcd.locate(0,3);
+ lcd.printf("-");
+ //lcd.locate(0,1);
+ wait(0.1);
+ }
+ if(Conf==1){
+ lcd.locate(0,1);
+ lcd.printf("-");
+ lcd.locate(0,2);
+ lcd.printf(">");
+ lcd.locate(0,3);
+ lcd.printf("-");
+ //lcd.locate(0,1);
+ wait(0.1);
+ }
+
+ if(Conf==2){
+ lcd.locate(0,1);
+ lcd.printf("-");
+ lcd.locate(0,2);
+ lcd.printf("-");
+ lcd.locate(0,3);
+ lcd.printf(">");
+ //lcd.locate(0,1);
+ wait(0.1);
+ }
+ if (b_en.falling()){ //si se pulsa boton encoder
+ if(Conf == 0){
+ Lugar++;
+ }
+ if(Conf == 1){
+ Lugar++;
+ }
+ if(Conf == 2){
+ Lugar=3;
+ }
+ m=0;
+ }
+ break;
+
+ case 1://Configurar
+ if(Conf==0){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Configurar Hora ");
+ goto hora;
+ }
+
+ if(Conf==1){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Configurar Alarma");
+ goto alarm;
+ }
+ if(Conf==2){
+ Lugar=3;
+ }
+ case 2:
+ goto desactivar;
+
+ case 3: //Visualizar y Activacion Alarmas
+ rtc.getTime(Hora);
+ m=wheel.getPulses();
+ if(x1==1){
+ red=1;
+ }
+ if(x2==1){
+ green=1;
+ }
+ if(x3==1){
+ blue=1;
+ }
+ if(x4==1){
+ red=1;
+ }
+ if(m!=0){
+ visual=visual+m;
+ if(visual<0){
+ visual=0;
+ }
+ if(visual>4){
+ visual=4;
+ }
+ wheel.reset();
+ m=0;
+ }
+
+ if(visual==0){//Visualiza hora
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Ver %02d:%02d:%02d",Hora.hour,Hora.min,Hora.sec);
+ lcd.locate(0,1);
+ lcd.printf("Hora :%02d/%02d/%04d",Hora.date,Hora.mon,Hora.year);
+ wait(0.1);
+ }
+ if(visual==1){//Visualilza alarma1
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Ver %02d:%02d:%02d",Alm.hour, Alm.min,Alm.sec);
+ lcd.locate(0,1);
+ lcd.printf("Alar1: %02d/%02d/%04d",Alm.date,Alm.mon,Alm.year);
+ lcd.locate(0,2);
+ lcd.printf("Desact:%02d:%02d:%02d",Alm_d.hour, Alm_d.min,Alm_d.sec);
+ lcd.locate(0,3);
+ lcd.printf("Alar1: %02d/%02d/%04d",Alm_d.date,Alm_d.mon,Alm_d.year);
+ wait(0.1);
+ }
+ if(visual==2){//Visualiza alarma2
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Ver %02d:%02d:%02d",Alm2.hour, Alm2.min,Alm2.sec);
+ lcd.locate(0,1);
+ lcd.printf("Alar2: %02d/%02d/%04d",Alm2.date,Alm2.mon,Alm2.year);
+ lcd.locate(0,2);
+ lcd.printf("Desact %02d:%02d:%02d",Alm2_d.hour, Alm2_d.min,Alm2_d.sec);
+ lcd.locate(0,3);
+ lcd.printf("Alar2: %02d/%02d/%04d",Alm2_d.date,Alm2_d.mon,Alm2_d.year);
+ wait(0.1);
+ }
+ if(visual==3){//Visualiza alarma3
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Ver %02d:%02d:%02d",Alm3.hour, Alm3.min,Alm3.sec);
+ lcd.locate(0,1);
+ lcd.printf("Alar3: %02d/%02d/%04d",Alm3.date,Alm3.mon,Alm3.year);
+ lcd.locate(0,2);
+ lcd.printf("Desact: %02d:%02d:%02d",Alm3_d.hour, Alm3_d.min,Alm3_d.sec);
+ lcd.locate(0,3);
+ lcd.printf("Alar3: %02d/%02d/%04d",Alm3_d.date,Alm3_d.mon,Alm3_d.year);
+ wait(0.1);
+
+ }
+ if(visual==4){//Visualiza alarma4
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf(" Ver %02d:%02d:%02d",Alm4.hour, Alm4.min,Alm4.sec);
+ lcd.locate(0,1);
+ lcd.printf("Alar4: %02d/%02d/%04d",Alm4.date,Alm4.mon,Alm4.year);
+ lcd.locate(0,2);
+ lcd.printf("Desact: %02d:%02d:%02d",Alm4_d.hour, Alm4_d.min,Alm4_d.sec);
+ lcd.locate(0,3);
+ lcd.printf("Alar4: %02d/%02d/%04d",Alm4_d.date,Alm4_d.mon,Alm4_d.year);
+ wait(0.1);
+ }
+
+ if (b_en.falling()){
+ lcd.cls();
+ Lugar=0;
+ }
+ //Activacion Alarma1
+ if((Hora.date==Alm.date)&&(Hora.mon==Alm.mon)&&(Hora.year==Alm.year)&&(Hora.hour==Alm.hour)&&(Hora.min==Alm.min)&&(Hora.sec==Alm.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 1 Activa!!");
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ lcd.locate(0,0);
+ lcd.printf("Esperando Desactivacion");
+ wait(1);
+ m=0;
+ k=1;
+ alarma = 1;
+ goto menu;
+ }
+
+ //Activacion Alarma2
+ if((Hora.date==Alm2.date)&&(Hora.mon==Alm2.mon)&&(Hora.year==Alm2.year)&&(Hora.hour==Alm2.hour)&&(Hora.min==Alm2.min)&&(Hora.sec==Alm2.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 2 Activa!!");
+ green =0;
+ wait(.2);
+ green =1;
+ wait(.2);
+ green =0;
+ wait(.2);
+ green =1;
+ wait(.2);
+ green =0;
+ lcd.locate(0,0);
+ lcd.printf("Esperando desactivacion");
+ wait(1);
+ Lugar = 3;
+ m=0;
+ k=2;
+ alarma = 1;
+ goto menu;
+ }
+
+ //Activacion Alarma3
+ if((Hora.date==Alm3.date)&&(Hora.mon==Alm3.mon)&&(Hora.year==Alm3.year)&&(Hora.hour==Alm3.hour)&&(Hora.min==Alm3.min)&&(Hora.sec==Alm3.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 3 Activa!!");
+ blue =0;
+ wait(.2);
+ blue =1;
+ wait(.2);
+ blue =0;
+ wait(.2);
+ blue =1;
+ wait(.2);
+ blue =0;
+ lcd.locate(0,0);
+ lcd.printf("Esperando desactivacion");
+ wait(1);
+ lcd.locate(0,1);
+ m=0;
+ k=3;
+ alarma = 1;
+ goto menu;
+ }
+ //Activacion Alarma4
+ if((Hora.date==Alm4.date)&&(Hora.mon==Alm4.mon)&&(Hora.year==Alm4.year)&&(Hora.hour==Alm4.hour)&&(Hora.min==Alm4.min)&&(Hora.sec==Alm4.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 4 Activa!!");
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ lcd.locate(0,0);
+ lcd.printf("Esperando desactivacion");
+ wait(1);
+ m=0;
+ alarma =1;
+ k=4;
+ }
+
+ //Desactivar Alarma
+
+ if(alarma==1){
+ Sonido.write(0.5);
+ red = 0;
+ wait(0.2);
+ red = 1;
+ Sonido.write(0);
+ wait(0.2);
+ blue = 0;
+ Sonido.write(0.5);
+ wait(0.2);
+ blue = 1;
+ Sonido.write(0);
+ wait(0.2);
+ }
+ //Desactivacion Alarma1
+ if((Hora.date==Alm_d.date)&&(Hora.mon==Alm_d.mon)&&(Hora.year==Alm_d.year)&&(Hora.hour==Alm_d.hour)&&(Hora.min==Alm_d.min)&&(Hora.sec==Alm_d.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 1 Desactivada");
+ wait(1);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Adios");
+ alarma = 0;
+ wait(1);
+ m=0;
+ k=1;
+ }
+
+ //Desactivacion Alarma2
+ if((Hora.date==Alm2_d.date)&&(Hora.mon==Alm2_d.mon)&&(Hora.year==Alm2_d.year)&&(Hora.hour==Alm2_d.hour)&&(Hora.min==Alm2_d.min)&&(Hora.sec==Alm2_d.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 2 Desactivada");
+ wait(1);
+ green =0;
+ wait(.2);
+ green =1;
+ wait(.2);
+ green =0;
+ wait(.2);
+ green =1;
+ wait(.2);
+ green =0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Adios");
+ alarma = 0;
+ wait(1);
+ m=0;
+ k=2;
+ }
+
+ //Desactivacion Alarma3
+ if((Hora.date==Alm3_d.date)&&(Hora.mon==Alm3_d.mon)&&(Hora.year==Alm3_d.year)&&(Hora.hour==Alm3_d.hour)&&(Hora.min==Alm3_d.min)&&(Hora.sec==Alm3_d.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 3 Desactivada");
+ blue =0;
+ wait(.2);
+ blue =1;
+ wait(.2);
+ blue =0;
+ wait(.2);
+ blue =1;
+ wait(.2);
+ blue =0;
+ lcd.locate(0,0);
+ lcd.printf("Adios");
+ wait(1);
+ m=0;
+ alarma = 0;
+ k=3;
+ }
+ //Desactivacion Alarma4
+ if((Hora.date==Alm4_d.date)&&(Hora.mon==Alm4_d.mon)&&(Hora.year==Alm4_d.year)&&(Hora.hour==Alm4_d.hour)&&(Hora.min==Alm4_d.min)&&(Hora.sec==Alm4_d.sec))
+ {
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Alarma 4 Desactivada");
+ wait(1);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ wait(.2);
+ red =1;
+ wait(.2);
+ red =0;
+ lcd.locate(0,0);
+ lcd.printf("Adios");
+ alarma = 0;
+ wait(1);
+ m=0;
+ k=4;
+ }
+ ///////////////////
+
+ break;
+
+
+ }
+ }
+
+// Lazo de config de hora
+
+hora:
+ int i = 0;
+ wait(1);
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Segundos: ");
+ Hora.sec=0;
+ m=0;
+ while(i == 0){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.sec=Hora.sec+m;
+ if(Hora.sec>59){
+ Hora.sec=59;
+ }
+ if(Hora.sec<0){
+ Hora.sec=0;
+ }
+ wheel.reset();
+ m=0;
+ }
+ lcd.locate(0,1);
+ lcd.printf(" ");
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.sec);
+
+ if (b_en.falling()){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Minutos: ");
+ Hora.min = 0;
+ i++;
+ m=0;
+ }
+ }
+ while(i == 1){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.min=Hora.min+m;
+ if(Hora.min>59){
+ Hora.min=59;
+ }
+ if(Hora.min<0){
+ Hora.min=0;
+ }
+ wheel.reset();
+ m=0;
+ }
+ lcd.locate(0,1);
+ lcd.printf(" ");
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.min);
+ if (b_en.falling()){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Hora: ");
+ Hora.hour = 0;
+ i++;
+ m=0;
+ }
+ }
+
+ while(i == 2){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.hour=Hora.hour+m;
+ if(Hora.hour>12){
+ Hora.hour=12;
+ }
+ if(Hora.hour<0){
+ Hora.hour=0;
+ }
+ wheel.reset();
+ m=0;
+ }
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.hour);
+ if (b_en.falling()){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Hora definida: ");
+ wait(1);
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Fecha: ");
+ wait(1);
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Dia: ");
+ Hora.date = 1;
+ i++;
+ m=0;
+ }
+ }
+
+
+ while (i == 3){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.date=Hora.date+m;
+ if(Hora.date>59){
+ Hora.date=59;
+ }
+ if(Hora.date<1){
+ Hora.date=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.date);
+ }
+
+ if (b_en.falling()){
+ i++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Mes: ");
+ Hora.mon = 1;
+
+ }
+ }
+
+ while (i == 4){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.mon=Hora.mon+m;
+ if(Hora.mon>12){
+ Hora.mon=12;
+ }
+ if(Hora.mon<1){
+ Hora.mon=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.mon);
+ }
+
+ if (b_en.falling()){
+ i++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Ano: ");
+ Hora.year = 2016;
+ }
+ }
+ while (i == 5){
+ m=wheel.getPulses();
+ if (m!=0){
+ Hora.year=Hora.year+m;
+
+ if(Hora.year<2016){
+ Hora.year=2016;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",Hora.year);
+ }
+
+ if (b_en.falling()){
+ i++;
+ m=0;
+ lcd.cls();
+ rtc.setTime(Hora, false, false);
+ rtc.startClock();
+ }
+ }
+
+
+ while(i == 6){
+
+ lcd.locate(0,0);
+ lcd.printf("Esperando Hora ");
+ if(rtc.getTime(Hora)){
+
+ pc.printf("La hora actual es : %02d:%02d:%02d\n", Hora.hour, Hora.min, Hora.sec); // Me entrega la hora actual
+ red = 0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Hora: ");
+ lcd.locate(0,1);
+ lcd.printf("%02d:%02d:%02d", Hora.hour, Hora.min,Hora.sec);
+ red = 1;
+ wait(1);
+ }
+ if (b_en.falling()){
+ i++;
+ Lugar = 3;
+ }
+ }
+
+ while(i == 7){
+ goto menu;
+ }
+
+
+
+// Lazo de Config Alarmas
+
+alarm:
+int pos=1;
+int l =0;
+
+ while(l == 0){
+ m=wheel.getPulses();
+ lcd.locate(0,0);
+ lcd.printf("Configurar Alarma %02d",pos);
+ lcd.locate(0,1);
+ lcd.printf("-1 -2 -3 -4");
+ if (m!=0){
+ pos=pos+m;
+ if(pos<1){
+ pos=1;
+ }
+ if(pos>4){
+ pos=4;
+ }
+ wheel.reset();
+ m=0;
+ }
+ if(pos==1){
+ red =0;
+ green =1;
+ blue =1;
+ lcd.locate(0,1);
+ lcd.printf(">");
+ lcd.locate(4,1);
+ lcd.printf("-");
+ lcd.locate(9,1);
+ lcd.printf("-");
+ lcd.locate(13,1);
+ lcd.printf("-");
+ wait(0.1);
+ }
+ if(pos==2){
+ red =1;
+ green =0;
+ blue =1;
+ lcd.locate(0,1);
+ lcd.printf("-");
+ lcd.locate(4,1);
+ lcd.printf(">");
+ lcd.locate(9,1);
+ lcd.printf("-");
+ lcd.locate(13,1);
+ lcd.printf("-");
+ wait(0.1);
+ }
+ if(pos==3){
+ red =1;
+ green =1;
+ blue =0;
+ lcd.locate(0,1);
+ lcd.printf("-");
+ lcd.locate(4,1);
+ lcd.printf("-");
+ lcd.locate(9,1);
+ lcd.printf(">");
+ lcd.locate(13,1);
+ lcd.printf("-");
+ wait(0.1);
+ }
+ if(pos==4){
+ red =0;
+ green =0;
+ blue =0;
+ lcd.locate(0,1);
+ lcd.printf("-");
+ lcd.locate(4,1);
+ lcd.printf("-");
+ lcd.locate(9,1);
+ lcd.printf("-");
+ lcd.locate(13,1);
+ lcd.printf(">");
+ wait(0.1);
+ }
+
+ if (b_en.falling()){
+ m=0;
+ l = 1;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Selecciono la");
+ lcd.locate(0,2);
+ lcd.printf("Alarma numero %02d ",pos);
+ wait(1.5);
+ lcd.cls();
+
+ }
+
+ }
+
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Dia: ");
+ t.date = 1;
+
+ while (l == 1){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.date=t.date+m;
+ if(t.date>31){
+ t.date=31;
+ }
+ if(t.date<1){
+ t.date=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.date);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Mes: ");
+ t.mon = 1;
+ l = 2;
+ }
+ }
+ while (l == 2){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.mon=t.mon+m;
+ if(t.mon>12){
+ t.mon=12;
+ }
+ if(t.mon<1){
+ t.mon=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.mon);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Ano: ");
+ t.year = 2016;
+ l = 3;
+ }
+ }
+ while (l == 3){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.year=t.year+m;
+
+ if(t.year<2016){
+ t.year=2016;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.year);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Hora: ");
+ t.hour = 0;
+ l = 4;
+ }
+ }
+ while (l == 4){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.hour=t.hour+m;
+ if(t.hour>23){
+ t.hour=23;
+ }
+
+ if(t.hour<0){
+ t.hour=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.hour);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Minuto: ");
+ t.min = 0;
+ l = 5;
+ }
+ }
+ while (l == 5){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.min=t.min+m;
+ if(t.min>59){
+ t.min=59;
+ }
+
+ if(t.min<0){
+ t.min=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.min);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Segundo: ");
+ t.sec = 0;
+ l = 6;
+ }
+
+ }
+ while (l == 6){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.sec=t.sec+m;
+ if(t.sec>59){
+ t.sec=59;
+ }
+
+ if(t.sec<0){
+ t.sec=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.sec);
+ }
+
+ if (b_en.falling()){
+
+ if(pos ==1){
+ Alm=t;
+ x1=1;
+ }
+ if(pos ==2){
+ Alm2=t;
+ x2=1;
+ }
+ if(pos ==3){
+ Alm3=t;
+ x3=1;
+ }
+ if(pos ==4){
+ Alm4=t;
+ x4=1;
+ }
+ lcd.cls();
+ lcd.locate(0,1);
+ lcd.printf("Alarma %02d config",pos);
+ wait(1);
+ m=0;
+ lcd.cls();
+ l = 7;
+ }
+ }
+
+ while(l == 7){
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Prog Desactivacion");
+ wait(2);
+ l = 8;
+ }
+
+ while(l == 8){
+ if (b_en.falling()){
+ l = 9;
+ lcd.cls();
+ wait(1);
+ }
+ while(l == 9){
+ Lugar=2;
+ goto menu;
+ }
+ }
+desactivar:
+l = 1;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Dia: ");
+ t.date = 1;
+
+ while (l == 1){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.date=t.date+m;
+ if(t.date>31){
+ t.date=31;
+ }
+ if(t.date<1){
+ t.date=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.date);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Mes: ");
+ t.mon = 1;
+ l = 2;
+ }
+ }
+ while (l == 2){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.mon=t.mon+m;
+ if(t.mon>12){
+ t.mon=12;
+ }
+ if(t.mon<1){
+ t.mon=1;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.mon);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Ano: ");
+ t.year = 2016;
+ l = 3;
+ }
+ }
+ while (l == 3){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.year=t.year+m;
+
+ if(t.year<2016){
+ t.year=2016;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.year);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Hora: ");
+ t.hour = 0;
+ l = 4;
+ }
+ }
+ while (l == 4){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.hour=t.hour+m;
+ if(t.hour>23){
+ t.hour=23;
+ }
+
+ if(t.hour<0){
+ t.hour=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.hour);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Minuto: ");
+ t.min = 0;
+ l = 5;
+ }
+ }
+ while (l == 5){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.min=t.min+m;
+ if(t.min>59){
+ t.min=59;
+ }
+
+ if(t.min<0){
+ t.min=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.min);
+ }
+
+ if (b_en.falling()){
+ a++;
+ m=0;
+ lcd.cls();
+ lcd.locate(0,0);
+ lcd.printf("Segundo: ");
+ t.sec = 0;
+ l = 6;
+ }
+
+ }
+ while (l == 6){
+ m=wheel.getPulses();
+ if (m!=0){
+ t.sec=t.sec+m;
+ if(t.sec>59){
+ t.sec=59;
+ }
+
+ if(t.sec<0){
+ t.sec=0;
+ }
+ wheel.reset();
+ m=0;
+ lcd.locate(0,1);
+ lcd.printf("%02d",t.sec);
+ }
+
+ if (b_en.falling()){
+
+ if(pos ==1){
+ Alm_d=t;
+ x1=1;
+ }
+ if(pos ==2){
+ Alm2_d=t;
+ x2=1;
+ }
+ if(pos ==3){
+ Alm3_d=t;
+ x3=1;
+
+ }
+ if(pos ==4){
+ Alm4_d=t;
+ x4=1;
+ }
+ lcd.cls();
+ lcd.locate(0,1);
+ lcd.printf("Alarma %02d Finalizo",pos);
+ wait(1);
+ m=0;
+ lcd.cls();
+ l = 7;
+ }
+ }
+ while (l == 7){
+ Lugar=3;
+ goto menu;
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Nov 30 01:59:24 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9bcdf88f62b0 \ No newline at end of file