From a101c4f3d89131db04e5071ed23f82f9b181d753 Mon Sep 17 00:00:00 2001 From: svastm Date: Wed, 6 Jul 2016 17:24:16 +0200 Subject: [PATCH] [STM32XX] Fix RTC minimum date --- .../hal/TARGET_STM/TARGET_STM32F0/rtc_api.c | 17 ++++++----------- .../hal/TARGET_STM/TARGET_STM32F1/rtc_api.c | 4 ++-- .../hal/TARGET_STM/TARGET_STM32F3/rtc_api.c | 6 +++--- .../hal/TARGET_STM/TARGET_STM32F4/rtc_api.c | 6 +++--- .../hal/TARGET_STM/TARGET_STM32F7/rtc_api.c | 6 +++--- .../hal/TARGET_STM/TARGET_STM32L0/rtc_api.c | 6 +++--- .../hal/TARGET_STM/TARGET_STM32L1/rtc_api.c | 6 +++--- .../hal/TARGET_STM/TARGET_STM32L4/rtc_api.c | 6 +++--- 8 files changed, 26 insertions(+), 31 deletions(-) diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32F0/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32F0/rtc_api.c index 67db9a9990..c58d56deb0 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32F0/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32F0/rtc_api.c @@ -56,7 +56,7 @@ static void rtc_configure_time_and_date() mDate.WeekDay = 1; mDate.Month = 1; mDate.Date = 1; - mDate.Year = 1970; + mDate.Year = 2; if (HAL_RTC_SetDate(&RtcHandle, &mDate, RTC_FORMAT_BIN) != HAL_OK) { error("Date set failed\n"); } @@ -64,7 +64,7 @@ static void rtc_configure_time_and_date() mTime.Hours = 0; mTime.Minutes = 0; mTime.Seconds = 0; - mTime.TimeFormat = RTC_HOURFORMAT12_AM; + mTime.TimeFormat = RTC_HOURFORMAT_24; mTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; mTime.StoreOperation = RTC_STOREOPERATION_RESET; if (HAL_RTC_SetTime(&RtcHandle, &mTime, RTC_FORMAT_BIN) != HAL_OK) { @@ -243,12 +243,7 @@ time_t rtc_read(void) { timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; -#if DEVICE_LOWPOWERTIMER - //We need to add 52 to get the 1970 year - timeinfo.tm_year = dateStruct.Year + 52; -#else - timeinfo.tm_year = dateStruct.Year + 100; -#endif + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -273,11 +268,11 @@ void rtc_write(time_t t) { dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; @@ -295,7 +290,7 @@ void rtc_set_alarm(struct tm *ti, uint32_t subsecs) mAlarm.AlarmTime.Minutes = ti->tm_min; mAlarm.AlarmTime.Seconds = ti->tm_sec; mAlarm.AlarmTime.SubSeconds = subsecs; - mAlarm.AlarmTime.TimeFormat = RTC_HOURFORMAT12_AM; + mAlarm.AlarmTime.TimeFormat = RTC_HOURFORMAT_24; mAlarm.AlarmMask = RTC_ALARMMASK_DATEWEEKDAY; mAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_NONE; mAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32F1/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32F1/rtc_api.c index 50cb7286f5..b6fc14b8ec 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32F1/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32F1/rtc_api.c @@ -159,7 +159,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -184,7 +184,7 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32F3/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32F3/rtc_api.c index 838eb4083c..c24c3951c9 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32F3/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32F3/rtc_api.c @@ -178,7 +178,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -203,11 +203,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32F4/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32F4/rtc_api.c index 2f40051381..e3e8db64eb 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32F4/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32F4/rtc_api.c @@ -178,7 +178,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -203,11 +203,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c index 2293faba5e..97766a5d3e 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32F7/rtc_api.c @@ -178,7 +178,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -206,11 +206,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32L0/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32L0/rtc_api.c index 52b4398b8b..97eff3de6e 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32L0/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32L0/rtc_api.c @@ -190,7 +190,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -217,11 +217,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32L1/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32L1/rtc_api.c index cdf2e6976a..79b32432fa 100755 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32L1/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32L1/rtc_api.c @@ -189,7 +189,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -216,11 +216,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET; diff --git a/hal/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c b/hal/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c index 3e70680091..0dd3d45d4d 100644 --- a/hal/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c +++ b/hal/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c @@ -191,7 +191,7 @@ time_t rtc_read(void) timeinfo.tm_wday = dateStruct.WeekDay; timeinfo.tm_mon = dateStruct.Month - 1; timeinfo.tm_mday = dateStruct.Date; - timeinfo.tm_year = dateStruct.Year + 100; + timeinfo.tm_year = dateStruct.Year + 68; timeinfo.tm_hour = timeStruct.Hours; timeinfo.tm_min = timeStruct.Minutes; timeinfo.tm_sec = timeStruct.Seconds; @@ -218,11 +218,11 @@ void rtc_write(time_t t) dateStruct.WeekDay = timeinfo->tm_wday; dateStruct.Month = timeinfo->tm_mon + 1; dateStruct.Date = timeinfo->tm_mday; - dateStruct.Year = timeinfo->tm_year - 100; + dateStruct.Year = timeinfo->tm_year - 68; timeStruct.Hours = timeinfo->tm_hour; timeStruct.Minutes = timeinfo->tm_min; timeStruct.Seconds = timeinfo->tm_sec; - timeStruct.TimeFormat = RTC_HOURFORMAT12_PM; + timeStruct.TimeFormat = RTC_HOURFORMAT_24; timeStruct.DayLightSaving = RTC_DAYLIGHTSAVING_NONE; timeStruct.StoreOperation = RTC_STOREOPERATION_RESET;