Skip to content

Commit b0a91e0

Browse files
committed
Issue #871 - Fixed pointer types conversions
1 parent f4bf154 commit b0a91e0

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/system/systime.c

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,14 @@ SysTime_t SysTimeGet( void )
119119
{
120120
SysTime_t calendarTime = { .Seconds = 0, .SubSeconds = 0 };
121121
SysTime_t sysTime = { .Seconds = 0, .SubSeconds = 0 };
122-
SysTime_t deltaTime;
122+
uint32_t seconds;
123+
uint32_t subSeconds;
123124

124125
calendarTime.Seconds = RtcGetCalendarTime( ( uint16_t* )&calendarTime.SubSeconds );
125126

126-
RtcBkupRead( &deltaTime.Seconds, ( uint32_t* )&deltaTime.SubSeconds );
127+
RtcBkupRead( &seconds, &subSeconds );
128+
129+
SysTime_t deltaTime = { .Seconds = seconds, .SubSeconds = ( int16_t )subSeconds };
127130

128131
sysTime = SysTimeAdd( deltaTime, calendarTime );
129132

@@ -141,18 +144,27 @@ SysTime_t SysTimeGetMcuTime( void )
141144

142145
uint32_t SysTimeToMs( SysTime_t sysTime )
143146
{
144-
SysTime_t deltaTime;
145-
RtcBkupRead( &deltaTime.Seconds, ( uint32_t* )&deltaTime.SubSeconds );
147+
uint32_t seconds;
148+
uint32_t subSeconds;
149+
150+
RtcBkupRead( &seconds, &subSeconds );
151+
152+
SysTime_t deltaTime = { .Seconds = seconds, .SubSeconds = ( int16_t )subSeconds };
153+
146154
SysTime_t calendarTime = SysTimeSub( sysTime, deltaTime );
155+
147156
return calendarTime.Seconds * 1000 + calendarTime.SubSeconds;
148157
}
149158

150159
SysTime_t SysTimeFromMs( uint32_t timeMs )
151160
{
152161
uint32_t seconds = timeMs / 1000;
153-
SysTime_t sysTime = { .Seconds = seconds, .SubSeconds = ( int16_t )( timeMs - seconds * 1000 ) };
154-
SysTime_t deltaTime = { 0 };
155-
RtcBkupRead( &deltaTime.Seconds, ( uint32_t* )&deltaTime.SubSeconds );
162+
uint32_t subSeconds = timeMs - seconds * 1000;
163+
SysTime_t sysTime = { .Seconds = seconds, .SubSeconds = ( int16_t )subSeconds };
164+
165+
RtcBkupRead( &seconds, &subSeconds );
166+
167+
SysTime_t deltaTime = { .Seconds = seconds, .SubSeconds = ( int16_t )subSeconds };
156168

157169
return SysTimeAdd( sysTime, deltaTime );
158170
}

0 commit comments

Comments
 (0)