APS_SO

Dependencies:   mbed

main.cpp

Committer:
ianwillianb
Date:
2017-10-28
Revision:
1:3da12598c635
Parent:
0:f603fa86c646
Child:
2:27a7a42b2bae

File content as of revision 1:3da12598c635:

#include "mbed.h"
#include "Rtc_Ds1307.h"


//Inicialização do Led RGB
DigitalOut led(LED_BLUE);
//Inicialização do RTC
Rtc_Ds1307 rtc(D14,D15);
//Estrutura responsável por armazenar os dados do RTC
Rtc_Ds1307::Time_rtc alarm_time ; 
//Estabelece comunicação serial para DEBUG
Serial gSerial(USBTX, USBRX);
                
 //Ajuste da hora atraves da interface serial               
 void set_time_serial()
 {
    int hora, min, seg, dia, mes, ano, opt;
    
    gSerial.printf("\n1-Ajuste de Hora, 2-Ajuste de Data, 3-Ajuste de Data/Hora: ");
    gSerial.scanf("%d",&opt);
   /* if(opt >=1 && opt <=3){
        
        
                }  */
    
    if(opt == 1 || opt ==3 ) {
                    
    gSerial.printf("\nInsira a hora(HH MM SS): ");
    gSerial.scanf("%d %d %d", &hora, &min, &seg);
    
    if( (hora < 24 && hora>=0) && (min>=0 && min <60) && (seg>=0 && seg <60)) 
            {
                   
                   rtc.getTime(alarm_time);
                   alarm_time.hour = hora;
                   alarm_time.min = min;
                   alarm_time.sec = seg;      
                   //alarm_time.date = 28;
                   //alarm_time.mon = 10;
                   //alarm_time.year = 2017;
                   rtc.setTime(alarm_time, true, false);
                   rtc.getTime(alarm_time);
                   gSerial.printf("\nHora Ajustada: %2d:%02d:%02d \n",alarm_time.hour,alarm_time.min,alarm_time.sec);
                                                                                
                                                                                
            }                
            
            else  gSerial.printf("Entrada Incorreta.\n");
                
              
             } 
             
             
          if(opt==2 || opt ==3)
             {
                 
                gSerial.printf("Insira a data(DIA MES ANO): ");
                gSerial.scanf("%d %d %d", &dia, &mes, &ano);
                if((dia < 32 && dia >0 && mes<13 && mes>0  && ano>2000) && !(mes == 2 && dia >=29 ) && !((mes == 4 || mes == 6 || mes == 9 || mes == 11)  && dia >30))
                {
                 
                    
                   rtc.getTime(alarm_time);
                   alarm_time.date = dia;
                   alarm_time.mon = mes;
                   alarm_time.year = ano;      
                   rtc.setTime(alarm_time, true, false);
                   rtc.getTime(alarm_time);
                   gSerial.printf("\nData Ajustada: %2d/%02d/%d \n",alarm_time.date,alarm_time.mon,alarm_time.year);
                 
                 }
                 
                 else gSerial.printf("Entrada Incorreta.\n");  
                 
                 
            } 
            
            else gSerial.printf("Opcao Invalida!.\n");
             

             
             
                
 }               
 
void ajus_data_hora()
    
{

   char hadj;
   gSerial.printf("Deseja ajustar a hora? - Caso sim digite s: ");
   gSerial.scanf("%c",&hadj);
   if(hadj=='s')
   {
    set_time_serial();
    
    }

}
  
                


int main()
{   

   char hadj; //opcao do ajuste do rtc
   gSerial.printf("Deseja ajustar a hora? - Caso sim digite s: ");
   gSerial.scanf("%c",&hadj);
   if(hadj=='s') //caso seja digitado s exibe as opcoes de ajuste 
   {
    set_time_serial();
    
    }


  
    while (true) {

        rtc.getTime(alarm_time);
        led = !led;  
        gSerial.printf("\r");
        gSerial.printf("Hora: %2d:%02d:%02d \n",alarm_time.hour,alarm_time.min,alarm_time.sec);  
        wait(1);      
                }
                
                
            
            
            
}