RTC. Fixed rtcConvertDateTimeToFAT() function (bug #615).
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8091 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
97321699e9
commit
9c863974f8
|
@ -220,19 +220,18 @@ void rtcSetCallback(RTCDriver *rtcp, rtccb_t callback) {
|
||||||
void rtcConvertDateTimeToStructTm(const RTCDateTime *timespec,
|
void rtcConvertDateTimeToStructTm(const RTCDateTime *timespec,
|
||||||
struct tm *timp,
|
struct tm *timp,
|
||||||
uint32_t *tv_msec) {
|
uint32_t *tv_msec) {
|
||||||
int tmp;
|
int sec;
|
||||||
|
|
||||||
timp->tm_year = (int)timespec->year + (1980 - 1900);
|
timp->tm_year = (int)timespec->year + (1980 - 1900);
|
||||||
timp->tm_mon = (int)timespec->month - 1;
|
timp->tm_mon = (int)timespec->month - 1;
|
||||||
timp->tm_mday = (int)timespec->day;
|
timp->tm_mday = (int)timespec->day;
|
||||||
timp->tm_isdst = (int)timespec->dstflag;
|
timp->tm_isdst = (int)timespec->dstflag;
|
||||||
|
|
||||||
tmp = (int)timespec->millisecond / 1000;
|
sec = (int)timespec->millisecond / 1000;
|
||||||
timp->tm_sec = tmp % 60;
|
timp->tm_hour = sec / 3600;
|
||||||
tmp -= timp->tm_sec;
|
sec %= 3600;
|
||||||
timp->tm_min = (tmp % 3600) / 60;
|
timp->tm_min = sec / 60;
|
||||||
tmp -= timp->tm_min * 60;
|
timp->tm_sec = sec % 60;
|
||||||
timp->tm_hour = tmp / 3600;
|
|
||||||
|
|
||||||
if (NULL != tv_msec) {
|
if (NULL != tv_msec) {
|
||||||
*tv_msec = (uint32_t)timespec->millisecond % 1000U;
|
*tv_msec = (uint32_t)timespec->millisecond % 1000U;
|
||||||
|
@ -283,12 +282,13 @@ void rtcConvertStructTmToDateTime(const struct tm *timp,
|
||||||
*/
|
*/
|
||||||
uint32_t rtcConvertDateTimeToFAT(const RTCDateTime *timespec) {
|
uint32_t rtcConvertDateTimeToFAT(const RTCDateTime *timespec) {
|
||||||
uint32_t fattime;
|
uint32_t fattime;
|
||||||
uint32_t sec, min, hour, day, month, tmp;
|
uint32_t sec, min, hour, day, month;
|
||||||
|
|
||||||
tmp = timespec->millisecond / 1000U;
|
sec = timespec->millisecond / 1000U;
|
||||||
sec = tmp % 60U;
|
hour = sec / 3600U;
|
||||||
min = (tmp - sec) % 3600U;
|
sec %= 3600U;
|
||||||
hour = ((tmp - sec) - (min * 60U)) / 3600U;
|
min = sec / 60U;
|
||||||
|
sec %= 60U;
|
||||||
day = timespec->day;
|
day = timespec->day;
|
||||||
month = timespec->month;
|
month = timespec->month;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue