[Icc-avr] RTC - how to compute the difference in minutes
Ivan Vernot
ivanv at realtimedesigns.com.au
Thu Nov 15 17:23:47 PST 2007
What about google-ing for open source implementation of time.h functions?
gmtime() and localtime() et al already know how to deal with leap year etc
http://en.wikipedia.org/wiki/Time.h for time.h info.
HTH
Ivan Vernot
----- Original Message -----
From: Robert Rademacher
To: icc-avr at imagecraft.com ; robertrade at yahoo.com
Sent: Friday, November 16, 2007 3:32 AM
Subject: [Icc-avr] RTC - how to compute the difference in minutes
Hi Paul,
Thanks for your response. Based on the "validation test" done on Excel worksheet, these RTC test "equations" will not work if the year is rolled over to 2008. It's OK...as we can improve on that. :)
Here's the link to Excel file for "testing" the RTC calculations (keep in mind it's not yet perfect).
http://rademacher.org/ElapsedTimeCalculation.xls
The revised RTC_Time would be:
RTC_TEST_TIME = (hour * 60) + minutes
RTC_TEST_DATE = (year * 10000) + (months * 100) + day (this one needs bit more work)
Example #1 (from Excel worksheet)
Session Year Month Day Hour Minute CalTime CalDate
Start 2007 11 14 9 30 570 20071114
End 2007 11 14 21 30 1290 20071114
TotalTime 720
TotalDays 0
Total Minutes 720 (correct)
To compute for the total elapsed minutes, these above equations will work, only if both start and end of month and year are same.
Let's look at Example #2:
Session Year Month Day Hour Minute CalTime CalDate
Start 2007 11 14 10 30 630 20071114
End 2007 11 15 9 30 570 20071115
TotalTime -60
TotalDays 1
Total Minutes 1380 (correct)
Example #3
Session Year Month Day Hour Minute CalTime CalDate
Start 2007 11 14 9 30 570 20071114
End 2007 11 20 12 45 765 20071120
TotalTime 195
TotalDays 6
Total Minutes 8835 (correct)
The total elapsed minutes calculations based on hours/minutes/days are correct, as long as the month/year of both start/end session are same.
Here's the small problem when computing the elapsed days when the month/year are different for both start/end session.
Example #4
Session Year Month Day Hour Minute CalTime CalDate
Start 2007 12 31 9 30 570 20071231
End 2008 1 1 9 30 570 20080101
TotalTime 0
TotalDays 8870 (incorrect)
Total Minutes 12772800 (incorrect)
You will notice that the year has changed to 2008, as well as changing from December to January (month). The correct elapsed minutes would be 1440 minutes (24 hours).
I think we are getting there. Once we have the "magic" equation to handle the month/year, I will write a pretty difftime routine that would be very handy for all of us who use RTC for time/date services.
Thanks,
Robert J. Rademacher
================================================
Maybe if you convert the
date to Julian Days that would help. Ifpossible maybe the RTC could trigger an interrupt to so you couldcount days since event#1. I built a "TAB" timer not to long ago, butdid the date compare as yy.mm.dd TEST_RTC_TIME = (fix_hr * 100) + fix_min; TEST_RTC_DATE = ((unsigned long)fix_rtc_yr * 10000)+((unsignedlong)fix_rtc_month *100)+(unsigned long)fix_rtc_date;On Nov 14, 2007 11:42 PM, Robert Rademacher <robertrade at yahoo.com> wrote:> Hi all,>> I'm wondering if anyone has done the difftime routine for ICCAVR that would> compute the difference in minutes, using PCF8563 RTC. I know ICCAVR does not> have time.h library.>> Here is the elapsed minutes calculation:>> To compute for elapsed minutes (format: dd.mm.yy
hh.mm)>> Start date-time: 14.11.2007 10.15> Final date-time 15.11.2007 8.15>> Calculated for elapsed time: 22 hours or 1,320 minutes.>> This may look easy, but remember, we are dealing with leap year, specific> number of days/month, etc that need to be factored in when calculating the> difference between the start and end time-date stamps. It would be nice if> there is a RTC IC that has the mktime/gmtime I can read off instead of> individual numbers from date/time sections.>> I search everywhere for the code snippet designed for AVR and did not find> what I'm looking for as described above.>> Any good suggestions, as I'm bit pressed for deadline. I am sure everyone> may be interested in this potential
solution.>> Robert>>> ________________________________> Get easy, one-click access to your favorites. Make Yahoo! your homepage.> _______________________________________________> Icc-avr mailing list> Icc-avr at imagecraft.com> http://dragonsgate.net/mailman/listinfo/icc-avr>>-- Paul Mateer, AA9GGElan Engineering Corp.www.elanengr.com
------------------------------------------------------------------------------
Never miss a thing. Make Yahoo your homepage.
------------------------------------------------------------------------------
_______________________________________________
Icc-avr mailing list
Icc-avr at imagecraft.com
http://dragonsgate.net/mailman/listinfo/icc-avr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://dragonsgate.net/pipermail/icc-avr/attachments/20071116/143ca2d6/attachment.html
More information about the Icc-avr
mailing list