From efd34d53a19e5d1436774deffb3fd1733e670b53 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 2 Jul 2017 16:02:32 +0000 Subject: Fixed bug #854. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10298 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'os/hal/ports/STM32') diff --git a/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c b/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c index 09844f680..5c42dbc3b 100644 --- a/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c +++ b/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c @@ -345,9 +345,10 @@ void rtc_lld_set_time(RTCDriver *rtcp, const RTCDateTime *timespec) { /* Writing the registers.*/ rtc_enter_init(); - rtcp->rtc->TR = tr; - rtcp->rtc->DR = dr; - rtcp->rtc->CR |= timespec->dstflag << RTC_CR_BKP_OFFSET; + rtcp->rtc->TR = tr; + rtcp->rtc->DR = dr; + rtcp->rtc->CR = (rtcp->rtc->CR & ~(1U << RTC_CR_BKP_OFFSET)) | + (timespec->dstflag << RTC_CR_BKP_OFFSET); rtc_exit_init(); /* Leaving a reentrant critical zone.*/ -- cgit v1.2.3