Boa noite, sou bem noob em arduino e em programação, eu quero ler as informações do chip de RTC DS1302 em dois momentos diferentes e calcular a diferença entre eles em segundos ou minutos.
Um exemplo.
Data e hora: 30/7/2015 16:46:35
Data e hora: 15/2/2015 4:12:13
Eu poderia transformar todos eles em segundos ou minutos e depois subtrair uma pela outra, mas eu utilizaria muitas variáveis e talvez isso não funcione muito bem com meses que tenham menos ou mais de 30 dias. Tem algum jeito mais fácil de contar diferenças de tempo no arduino ou algo mais fácil de fazer isso ? sei que essa duvida é meio besta, mas não consegui achar uma solução melhor. obrigado pela ajuda.
Eu só me estou de lembrar de uma: transformar as duas datas em segundos (ou milissegundos) a contar de uma data fixa (por exemplo 1 de Janeiro de 1980) e depois subtrair os dois valores.
O que pode fazer, é só transformar aquelas variables que são diferentes entre elas:
Vem na minha mente algo assim: (não testei)
int lastHour = [year,month,day,hours,minutes,seconds]
int currentHour = [myRTC.year,myRTC.month,myRTC.dayofmonth,myRTC.hours,myRTC.minutes,myRTC.seconds]
if(int i=0;i <= sizeof(lastHour);i++){
if(lastHour[i] != currentHour[i]){
//ano
if(i == 0){
//multiplicação pra comvertir anos em segundos
lastHourSeconds = 200000 // só um exemplo
currentHourSeconds = 200000 // só um exemplo
}
//messes
if(i == 1){
//multiplicação pra comvertir messes em segundos
lastHourSeconds += 2000 // só um exemplo
currentHourSeconds += 2000 // só um exemplo
}
//días
if(i == 2){
//multiplicação pra comvertir días em segundos
lastHourSeconds += 5000 // só um exemplo
currentHourSeconds += 30000 // só um exemplo
}
//horas
if(i == 3){
//multiplicação pra comvertir horas em segundos
lastHourSeconds += 80000 // só um exemplo
currentHourSeconds += 1000 // só um exemplo
}
// asssim com todos
// calculo total
tempo_passado = lastHourSeconds - currentHourSeconds // resultado em segundos
}
}
transformar as duas datas em segundos (ou milissegundos) a contar de uma data fixa (por exemplo 1 de Janeiro de 1980) e depois subtrair os dois valores.
Penso que esta seja a solução ideal.Muitas linguagens de programação dispõem deste método para contagens de intervalos de tempo (php, c#, Objectiv C, Java ...)