Ejemplo RTC
Dependencies: Debounced FPointer RTC-DS1307 TextLCD keypad mbed
main.cpp
- Committer:
- Jesse
- Date:
- 2014-05-01
- Revision:
- 2:21ba0afb6205
- Parent:
- 1:8f03434fc55b
File content as of revision 2:21ba0afb6205:
//lectura del Puerto Serial //Jesse Mauricio Beltran //Michelle Maceas Henao #include "mbed.h" #include "Rtc_Ds1307.h" #include "TextLCD.h" #include "DebouncedIn.h" #include "keypad.h" PwmOut Pwm(PTA5); DebouncedIn Aumen(PTC10); DebouncedIn Panta(PTC11); DebouncedIn Decre(PTC6); DebouncedIn Ensayo(PTC7); TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7#include "TextLCD.h" Rtc_Ds1307 rtc(PTE0,PTE1); Serial pc(USBTX, USBRX); int Start=0,Read=0,Write=0,Menu=0,Menu2=0,Hora=0,Minuto=0,Segundo=0,pp=0,Dia=0,Dya=0,Mes=0,Anno=2000,Encendido=0,Aumen2=0,Decre2=0,flag2=0; float ppp=0.001; float Dd=0.1; int p=0,c=0,d=0,e=0,flag=0,ff=0,hh=0; int key; char Keytable[] = { '1', '2', '3', 'A', '4', '5', '6', 'B', '7', '8', '9', 'C', '*', '0', '#', 'D' }; uint32_t cbAfterInput(uint32_t Key) { key=Key; if(Keytable[key]=='A')//Lectura del Reloj. { Write=0; Read=1; } if(Keytable[key]=='B') { Write=1; Read=0; //Read=0; lcd.cls(); lcd.printf("Configuacion del"); lcd.locate(0,1); lcd.printf(" Reloj"); wait(1); } if(Keytable[key]=='2') { Start=1; } if(Keytable[key]=='D') { Menu=1; } if(Keytable[key]=='1') { Encendido=1; } if(Keytable[key]=='4') { Aumen2=1; } if(Keytable[key]=='5') { Decre2=1; } return 0; } int PWMmodule(float ppp,float Dd) { Pwm.period(ppp); Pwm.write(Dd); wait(0.1); Pwm.write(0); return 0; } int main() { lcd.cls(); lcd.printf("Configuracion de"); lcd.locate(0,2); lcd.printf(" Parametros"); //wait(0.2); Keypad keypad(PTA2,PTD4,PTD3,PTD1,PTD2,PTD0,PTD5,PTA13); keypad.CallAfterInput(&cbAfterInput); keypad.Start(); // energiza las columnas C0-C3 Del Keypad Rtc_Ds1307::Time_rtc tm = {}; while(1) { if(Read==1) { lcd.cls(); lcd.printf(" Lectura!"); wait(0.2); rtc.getTime(tm); lcd.cls(); lcd.locate(0,1); lcd.printf("%.2D",tm.hour); lcd.printf(":%.2D",tm.min); lcd.printf(":%.2D",tm.sec); lcd.locate(0,0); lcd.printf("%.2D",tm.mon); lcd.printf("/%.2D",tm.date); lcd.printf("/%.2D",tm.year); } if(Write==1) { lcd.cls(); lcd.printf(" Escritura"); if(Panta.falling()) { pp=pp+1; } if(pp==1) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese Hora"); } if(pp==2) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese Minutos"); } if(pp==3) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese Segundos"); } if(pp==4) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese Dia(Sem)"); } if(pp==5) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese dia"); } if(pp==6) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese Mes"); } if(pp==7) { lcd.cls(); lcd.locate(0,0); lcd.printf("Ingrese el Año"); } if(pp==8) { lcd.cls(); lcd.locate(0,0); lcd.printf("Datos Guardados !"); wait(2); lcd.cls(); pp=0; } } if(Aumen.falling()) { if(pp==1) { if(Hora<=23) { Hora=Hora+1; lcd.locate(0,1); lcd.printf("Hora[0-23]:%d",Hora); } else { Hora=0; } } if(pp==2) { if(Minuto<=59) { Minuto=Minuto+1; lcd.locate(0,1); lcd.printf("Minutos[0-59]:%d",Minuto); } else { Minuto=0; } } if(pp==3) { if(Segundo<=59) { Segundo=Segundo+1; lcd.locate(0,1); lcd.printf("Seg[0-59]:%d",Segundo); } else { Segundo=0; } } if(pp==4) { if(Dia<=7) { Dia=Dia+1; lcd.locate(0,1); lcd.printf("Dia[1-7]:%d",Dia); } else { Dia=0; } } if(pp==5) { //se toco por chimbiarlo , sera??, que gueva if(Dya<=31) { Dya=Dya+1; lcd.locate(0,1); lcd.printf("Dia:%d",Dya); } else { Dya=0; } } if(pp==6) { if(Mes<=12) { Mes=Mes+1; lcd.locate(0,1); lcd.printf("Mes:%d",Mes); } else { Mes=0; } } if(pp==7) { Anno=Anno+1; lcd.locate(0,1); lcd.printf("Ano:%d",Anno); } } if(Decre.falling()) { if(pp==1) { if(Hora>0) { Hora=Hora-1; lcd.locate(0,1); lcd.printf("Hora[0-23]:%d",Hora); } } if(pp==2) { if(Minuto>0) { Minuto=Minuto-1; lcd.locate(0,1); lcd.printf("Min[0-59]:%d",Minuto); } } if(pp==3) { if(Segundo>0) { Segundo=Segundo-1; lcd.locate(0,1); lcd.printf("Seg[0-59]:%d",Segundo); } } if(pp==4) { if(Dia>0) { Dia=Dia-1; lcd.locate(0,1); lcd.printf("Dia[1-7]:%d",Dia); } } if(pp==5) { if(Dya>0) { Dya=Dya-1; lcd.locate(0,1); lcd.printf("Dia:%d",Dya); } } if(pp==6) { if(Mes>0) { Mes=Mes-1; lcd.locate(0,1); lcd.printf("Mes:%d",Mes); } } if(pp==7) { if(Anno>0) { Anno=Anno-1; lcd.locate(0,1); lcd.printf("Ano:%d",Anno); } } } if(Start==1) { Write=0; Read=0; tm.mon=Mes; tm.year=Anno; tm.hour=Hora; tm.min=Minuto; tm.sec=Segundo; tm.date=Dya; rtc.setTime(tm, false, false); wait(0.3); Start=0; } if(Encendido==1) { rtc.startClock(); wait(0.2); flag2=1; Encendido=0; } if(flag2==1) { rtc.getTime(tm); if(Panta.falling()) { p=p+1; //flag=1; if(p==1) { lcd.cls(); lcd.printf("Ingrese la Hora"); } if(p==2) { lcd.cls(); lcd.printf("Ingrese Minutos"); } if(p==3) { lcd.cls(); lcd.printf("Ingrese Dia(1-7)"); } if(p==4) { lcd.cls(); lcd.printf("Guardados !"); wait(1); p=0; } } if(Aumen2==1) { if(p==1) { if(c<=24) { lcd.cls(); c=c+1; lcd.locate(0,0); lcd.printf("Ingrese la Hora"); lcd.locate(0,1); lcd.printf("Hora: %d",c); } else { c=0; } } if(p==2) { if(d<=60) { lcd.cls(); d=d+1; lcd.locate(0,0); lcd.printf("Ingrese Minutos"); lcd.locate(0,1); lcd.printf("Minutos: %d",d); } else { d=0; } } if(p==3) { if(e<=7) { lcd.cls(); e=e+1; lcd.locate(0,0); lcd.printf("Ingrese Dia(1-7)"); lcd.locate(0,1); lcd.printf("Dia: %d",e); } else { e=0; } } wait(0.1); Aumen2=0; } if(Decre2==1) { if(p==1) { if(c>0) { lcd.cls(); c=c-1; lcd.locate(0,0); lcd.printf("Ingrese la Hora"); lcd.locate(0,1); lcd.printf("Hora: %d",c); } else { c=0; } } if(p==2) { if(d>0) { lcd.cls(); d=d-1; lcd.locate(0,0); lcd.printf("Ingrese Minutos"); lcd.locate(0,1); lcd.printf("Minutos: %d",d); } else { d=0; } } if(p==3) { if(e>0) { lcd.cls(); e=e-1; lcd.locate(0,0); lcd.printf("Ingrese Dia(1-7)"); lcd.locate(0,1); lcd.printf("Dia: %d",e); } else { e=0; } } wait(0.1); Decre2=0; } if((p==0)) { lcd.cls(); lcd.locate(0,1); // Print and refresh data on line 2 of the LCD display lcd.printf("%.2D",tm.hour); lcd.printf(":%.2D",tm.min); lcd.printf(":%.2D",tm.sec); lcd.locate(0,0); lcd.printf("%.2D",tm.mon); lcd.printf("/%.2D",tm.date); lcd.printf("/%.2D",tm.year); if (tm.wday == 6){ lcd.printf(" Sun\n");} if (tm.wday == 7){ lcd.printf(" Mon\n");} if (tm.wday == 1){ lcd.printf(" Tues\n");} if (tm.wday == 2){ lcd.printf(" Wed\n");} if (tm.wday == 3){ lcd.printf(" Thur\n");} if (tm.wday == 4){ lcd.printf(" Fri\n");} if (tm.wday == 5){ lcd.printf(" Sat\n");} } } } }