L14-Click 1.0
STM32WLE5CC LoRaWAN Sensor Platform
Loading...
Searching...
No Matches
timer_if.c
Go to the documentation of this file.
1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file timer_if.c
5 * @author MCD Application Team
6 * @brief Configure RTC Alarm, Tick and Calendar manager
7 ******************************************************************************
8 * @attention
9 *
10 * Copyright (c) 2026 STMicroelectronics.
11 * All rights reserved.
12 *
13 * This software is licensed under terms that can be found in the LICENSE file
14 * in the root directory of this software component.
15 * If no LICENSE file comes with this software, it is provided AS-IS.
16 *
17 ******************************************************************************
18 */
19/* USER CODE END Header */
20
21/* Includes ------------------------------------------------------------------*/
22#include <math.h>
23#include "timer_if.h"
24#include "main.h" /*for STM32CubeMX generated RTC_N_PREDIV_S and RTC_N_PREDIV_A*/
25#include "rtc.h"
26#include "utilities_def.h"
27#include "stm32wlxx_ll_rtc.h"
28
29/* USER CODE BEGIN Includes */
30
31/* USER CODE END Includes */
32
33/* External variables ---------------------------------------------------------*/
34/**
35 * @brief RTC handle
36 */
37extern RTC_HandleTypeDef hrtc;
38
39/**
40 * @brief Timer driver callbacks handler
41 */
60
61/**
62 * @brief SysTime driver callbacks handler
63 */
72
73/* USER CODE BEGIN EV */
74
75/* USER CODE END EV */
76
77/* Private typedef -----------------------------------------------------------*/
78/* USER CODE BEGIN PTD */
79
80/* USER CODE END PTD */
81
82/* Private define ------------------------------------------------------------*/
83/**
84 * @brief Minimum timeout delay of Alarm in ticks
85 */
86#define MIN_ALARM_DELAY 3
87
88/**
89 * @brief Backup seconds register
90 */
91#define RTC_BKP_SECONDS RTC_BKP_DR0
92
93/**
94 * @brief Backup subseconds register
95 */
96#define RTC_BKP_SUBSECONDS RTC_BKP_DR1
97
98/**
99 * @brief Backup msbticks register
100 */
101#define RTC_BKP_MSBTICKS RTC_BKP_DR2
102
103/* #define RTIF_DEBUG */
104
105/**
106 * @brief Map UTIL_TIMER_IRQ can be overridden in utilities_conf.h to Map on Task rather then Isr
107 */
108#ifndef UTIL_TIMER_IRQ_MAP_INIT
109#define UTIL_TIMER_IRQ_MAP_INIT()
110#endif /* UTIL_TIMER_IRQ_MAP_INIT */
111
112#ifndef UTIL_TIMER_IRQ_MAP_PROCESS
113#define UTIL_TIMER_IRQ_MAP_PROCESS() UTIL_TIMER_IRQ_Handler()
114#endif /* UTIL_TIMER_IRQ_MAP_PROCESS */
115
116/* USER CODE BEGIN PD */
117
118
119
120/* USER CODE END PD */
121
122/* Private macro -------------------------------------------------------------*/
123#ifdef RTIF_DEBUG
124#include "sys_app.h" /*for app_log*/
125/**
126 * @brief Post the RTC log string format to the circular queue for printing in using the polling mode
127 */
128#define TIMER_IF_DBG_PRINTF(...) do{ {UTIL_ADV_TRACE_COND_FSend(VLEVEL_ALWAYS, T_REG_OFF, TS_OFF, __VA_ARGS__);} }while(0);
129#else
130/**
131 * @brief not used
132 */
133#define TIMER_IF_DBG_PRINTF(...)
134#endif /* RTIF_DEBUG */
135
136/* USER CODE BEGIN PM */
137
138/* USER CODE END PM */
139
140/* Private variables ---------------------------------------------------------*/
141/**
142 * @brief Indicates if the RTC is already Initialized or not
143 */
144static bool RTC_Initialized = false;
145
146/**
147 * @brief RtcTimerContext
148 */
149static uint32_t RtcTimerContext = 0;
150
151/* USER CODE BEGIN PV */
152
153/* USER CODE END PV */
154
155/* Private function prototypes -----------------------------------------------*/
156/**
157 * @brief Get rtc timer Value in rtc tick
158 * @return val the rtc timer value (upcounting)
159 */
160static inline uint32_t GetTimerTicks(void);
161
162/**
163 * @brief Writes MSBticks to backup register
164 * Absolute RTC time in tick is (MSBticks)<<32 + (32bits binary counter)
165 * @note MSBticks incremented every time the 32bits RTC timer wraps around (~44days)
166 * @param[in] MSBticks
167 */
168static void TIMER_IF_BkUp_Write_MSBticks(uint32_t MSBticks);
169
170/**
171 * @brief Reads MSBticks from backup register
172 * Absolute RTC time in tick is (MSBticks)<<32 + (32bits binary counter)
173 * @note MSBticks incremented every time the 32bits RTC timer wraps around (~44days)
174 * @retval MSBticks
175 */
176static uint32_t TIMER_IF_BkUp_Read_MSBticks(void);
177
178/* USER CODE BEGIN PFP */
179
180/* USER CODE END PFP */
181
182/* Exported functions ---------------------------------------------------------*/
183UTIL_TIMER_Status_t TIMER_IF_Init(void)
184{
185 UTIL_TIMER_Status_t ret = UTIL_TIMER_OK;
186 /* USER CODE BEGIN TIMER_IF_Init */
187
188 /* USER CODE END TIMER_IF_Init */
189 if (RTC_Initialized == false)
190 {
191 hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
192 /*Init RTC*/
193 MX_RTC_Init();
194 /*Stop Timer */
196 /** DeActivate the Alarm A enabled by STM32CubeMX during MX_RTC_Init() */
197 HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A);
198 /*overload RTC feature enable*/
199 hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
200
201 /*Enable Direct Read of the calendar registers (not through Shadow) */
202 HAL_RTCEx_EnableBypassShadow(&hrtc);
203 /*Initialize MSB ticks*/
205
207
208 /* Register a task to associate to UTIL_TIMER_Irq() interrupt */
210
211 RTC_Initialized = true;
212 }
213
214 /* USER CODE BEGIN TIMER_IF_Init_Last */
215
216 /* USER CODE END TIMER_IF_Init_Last */
217 return ret;
218}
219
220UTIL_TIMER_Status_t TIMER_IF_StartTimer(uint32_t timeout)
221{
222 UTIL_TIMER_Status_t ret = UTIL_TIMER_OK;
223 /* USER CODE BEGIN TIMER_IF_StartTimer */
224
225 /* USER CODE END TIMER_IF_StartTimer */
226 RTC_AlarmTypeDef sAlarm = {0};
227 /*Stop timer if one is already started*/
229 timeout += RtcTimerContext;
230
231 TIMER_IF_DBG_PRINTF("Start timer: time=%d, alarm=%d\n\r", GetTimerTicks(), timeout);
232 /* starts timer*/
233 sAlarm.BinaryAutoClr = RTC_ALARMSUBSECONDBIN_AUTOCLR_NO;
234 sAlarm.AlarmTime.SubSeconds = UINT32_MAX - timeout;
235 sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
236 sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDBINMASK_NONE;
237 sAlarm.Alarm = RTC_ALARM_A;
238 if (HAL_RTC_SetAlarm_IT(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK)
239 {
241 }
242 /* USER CODE BEGIN TIMER_IF_StartTimer_Last */
243
244 /* USER CODE END TIMER_IF_StartTimer_Last */
245 return ret;
246}
247
248UTIL_TIMER_Status_t TIMER_IF_StopTimer(void)
249{
250 UTIL_TIMER_Status_t ret = UTIL_TIMER_OK;
251 /* USER CODE BEGIN TIMER_IF_StopTimer */
252
253 /* USER CODE END TIMER_IF_StopTimer */
254 /* Clear RTC Alarm Flag */
255 __HAL_RTC_ALARM_CLEAR_FLAG(&hrtc, RTC_FLAG_ALRAF);
256 /* Disable the Alarm A interrupt */
257 HAL_RTC_DeactivateAlarm(&hrtc, RTC_ALARM_A);
258 /*overload RTC feature enable*/
259 hrtc.IsEnabled.RtcFeatures = UINT32_MAX;
260 /* USER CODE BEGIN TIMER_IF_StopTimer_Last */
261
262 /* USER CODE END TIMER_IF_StopTimer_Last */
263 return ret;
264}
265
267{
268 /*store time context*/
270
271 /* USER CODE BEGIN TIMER_IF_SetTimerContext */
272
273 /* USER CODE END TIMER_IF_SetTimerContext */
274
275 TIMER_IF_DBG_PRINTF("TIMER_IF_SetTimerContext=%d\n\r", RtcTimerContext);
276 /*return time context*/
277 return RtcTimerContext;
278}
279
281{
282 /* USER CODE BEGIN TIMER_IF_GetTimerContext */
283
284 /* USER CODE END TIMER_IF_GetTimerContext */
285
286 TIMER_IF_DBG_PRINTF("TIMER_IF_GetTimerContext=%d\n\r", RtcTimerContext);
287 /*return time context*/
288 return RtcTimerContext;
289}
290
292{
293 uint32_t ret = 0;
294 /* USER CODE BEGIN TIMER_IF_GetTimerElapsedTime */
295
296 /* USER CODE END TIMER_IF_GetTimerElapsedTime */
297 ret = ((uint32_t)(GetTimerTicks() - RtcTimerContext));
298 /* USER CODE BEGIN TIMER_IF_GetTimerElapsedTime_Last */
299
300 /* USER CODE END TIMER_IF_GetTimerElapsedTime_Last */
301 return ret;
302}
303
305{
306 uint32_t ret = 0;
307 /* USER CODE BEGIN TIMER_IF_GetTimerValue */
308
309 /* USER CODE END TIMER_IF_GetTimerValue */
310 if (RTC_Initialized == true)
311 {
312 ret = GetTimerTicks();
313 }
314 /* USER CODE BEGIN TIMER_IF_GetTimerValue_Last */
315
316 /* USER CODE END TIMER_IF_GetTimerValue_Last */
317 return ret;
318}
319
321{
322 uint32_t ret = 0;
323 /* USER CODE BEGIN TIMER_IF_GetMinimumTimeout */
324
325 /* USER CODE END TIMER_IF_GetMinimumTimeout */
326 ret = (MIN_ALARM_DELAY);
327 /* USER CODE BEGIN TIMER_IF_GetMinimumTimeout_Last */
328
329 /* USER CODE END TIMER_IF_GetMinimumTimeout_Last */
330 return ret;
331}
332
333uint32_t TIMER_IF_Convert_ms2Tick(uint32_t timeMilliSec)
334{
335 uint32_t ret = 0;
336 /* USER CODE BEGIN TIMER_IF_Convert_ms2Tick */
337
338 /* USER CODE END TIMER_IF_Convert_ms2Tick */
339 ret = ((uint32_t)((((uint64_t) timeMilliSec) << RTC_N_PREDIV_S) / 1000));
340 /* USER CODE BEGIN TIMER_IF_Convert_ms2Tick_Last */
341
342 /* USER CODE END TIMER_IF_Convert_ms2Tick_Last */
343 return ret;
344}
345
346uint32_t TIMER_IF_Convert_Tick2ms(uint32_t tick)
347{
348 uint32_t ret = 0;
349 /* USER CODE BEGIN TIMER_IF_Convert_Tick2ms */
350
351 /* USER CODE END TIMER_IF_Convert_Tick2ms */
352 ret = ((uint32_t)((((uint64_t)(tick)) * 1000) >> RTC_N_PREDIV_S));
353 /* USER CODE BEGIN TIMER_IF_Convert_Tick2ms_Last */
354
355 /* USER CODE END TIMER_IF_Convert_Tick2ms_Last */
356 return ret;
357}
358
359void TIMER_IF_DelayMs(uint32_t delay)
360{
361 /* USER CODE BEGIN TIMER_IF_DelayMs */
362
363 /* USER CODE END TIMER_IF_DelayMs */
364 uint32_t delayTicks = TIMER_IF_Convert_ms2Tick(delay);
365 uint32_t timeout = GetTimerTicks();
366
367 /* Wait delay ms */
368 while (((GetTimerTicks() - timeout)) < delayTicks)
369 {
370 __NOP();
371 }
372 /* USER CODE BEGIN TIMER_IF_DelayMs_Last */
373
374 /* USER CODE END TIMER_IF_DelayMs_Last */
375}
376
377void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
378{
379 /* USER CODE BEGIN HAL_RTC_AlarmAEventCallback */
380
381 /* USER CODE END HAL_RTC_AlarmAEventCallback */
383 /* USER CODE BEGIN HAL_RTC_AlarmAEventCallback_Last */
384
385 /* USER CODE END HAL_RTC_AlarmAEventCallback_Last */
386}
387
388void HAL_RTCEx_SSRUEventCallback(RTC_HandleTypeDef *hrtc)
389{
390 /* USER CODE BEGIN HAL_RTCEx_SSRUEventCallback */
391
392 /* USER CODE END HAL_RTCEx_SSRUEventCallback */
393 /*called every 48 days with 1024 ticks per seconds*/
394 TIMER_IF_DBG_PRINTF(">>Handler SSRUnderflow at %d\n\r", GetTimerTicks());
395 /*Increment MSBticks*/
396 uint32_t MSB_ticks = TIMER_IF_BkUp_Read_MSBticks();
397 TIMER_IF_BkUp_Write_MSBticks(MSB_ticks + 1);
398 /* USER CODE BEGIN HAL_RTCEx_SSRUEventCallback_Last */
399
400 /* USER CODE END HAL_RTCEx_SSRUEventCallback_Last */
401}
402
403uint32_t TIMER_IF_GetTime(uint16_t *mSeconds)
404{
405 uint32_t seconds = 0;
406 /* USER CODE BEGIN TIMER_IF_GetTime */
407
408 /* USER CODE END TIMER_IF_GetTime */
409 uint64_t ticks;
410 uint32_t timerValueLsb = GetTimerTicks();
411 uint32_t timerValueMSB = TIMER_IF_BkUp_Read_MSBticks();
412
413 ticks = (((uint64_t) timerValueMSB) << 32) + timerValueLsb;
414
415 seconds = (uint32_t)(ticks >> RTC_N_PREDIV_S);
416
417 ticks = (uint32_t) ticks & RTC_PREDIV_S;
418
419 *mSeconds = TIMER_IF_Convert_Tick2ms(ticks);
420
421 /* USER CODE BEGIN TIMER_IF_GetTime_Last */
422
423 /* USER CODE END TIMER_IF_GetTime_Last */
424 return seconds;
425}
426
427void TIMER_IF_BkUp_Write_Seconds(uint32_t Seconds)
428{
429 /* USER CODE BEGIN TIMER_IF_BkUp_Write_Seconds */
430
431 /* USER CODE END TIMER_IF_BkUp_Write_Seconds */
432 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_SECONDS, Seconds);
433 /* USER CODE BEGIN TIMER_IF_BkUp_Write_Seconds_Last */
434
435 /* USER CODE END TIMER_IF_BkUp_Write_Seconds_Last */
436}
437
438void TIMER_IF_BkUp_Write_SubSeconds(uint32_t SubSeconds)
439{
440 /* USER CODE BEGIN TIMER_IF_BkUp_Write_SubSeconds */
441
442 /* USER CODE END TIMER_IF_BkUp_Write_SubSeconds */
443 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_SUBSECONDS, SubSeconds);
444 /* USER CODE BEGIN TIMER_IF_BkUp_Write_SubSeconds_Last */
445
446 /* USER CODE END TIMER_IF_BkUp_Write_SubSeconds_Last */
447}
448
450{
451 uint32_t ret = 0;
452 /* USER CODE BEGIN TIMER_IF_BkUp_Read_Seconds */
453
454 /* USER CODE END TIMER_IF_BkUp_Read_Seconds */
455 ret = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_SECONDS);
456 /* USER CODE BEGIN TIMER_IF_BkUp_Read_Seconds_Last */
457
458 /* USER CODE END TIMER_IF_BkUp_Read_Seconds_Last */
459 return ret;
460}
461
463{
464 uint32_t ret = 0;
465 /* USER CODE BEGIN TIMER_IF_BkUp_Read_SubSeconds */
466
467 /* USER CODE END TIMER_IF_BkUp_Read_SubSeconds */
468 ret = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_SUBSECONDS);
469 /* USER CODE BEGIN TIMER_IF_BkUp_Read_SubSeconds_Last */
470
471 /* USER CODE END TIMER_IF_BkUp_Read_SubSeconds_Last */
472 return ret;
473}
474
475/* USER CODE BEGIN EF */
476
477/* USER CODE END EF */
478
479/* Private functions ---------------------------------------------------------*/
480static void TIMER_IF_BkUp_Write_MSBticks(uint32_t MSBticks)
481{
482 /* USER CODE BEGIN TIMER_IF_BkUp_Write_MSBticks */
483
484 /* USER CODE END TIMER_IF_BkUp_Write_MSBticks */
485 HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_MSBTICKS, MSBticks);
486 /* USER CODE BEGIN TIMER_IF_BkUp_Write_MSBticks_Last */
487
488 /* USER CODE END TIMER_IF_BkUp_Write_MSBticks_Last */
489}
490
491static uint32_t TIMER_IF_BkUp_Read_MSBticks(void)
492{
493 /* USER CODE BEGIN TIMER_IF_BkUp_Read_MSBticks */
494
495 /* USER CODE END TIMER_IF_BkUp_Read_MSBticks */
496 uint32_t MSBticks;
497 MSBticks = HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_MSBTICKS);
498 return MSBticks;
499 /* USER CODE BEGIN TIMER_IF_BkUp_Read_MSBticks_Last */
500
501 /* USER CODE END TIMER_IF_BkUp_Read_MSBticks_Last */
502}
503
504static inline uint32_t GetTimerTicks(void)
505{
506 /* USER CODE BEGIN GetTimerTicks */
507
508 /* USER CODE END GetTimerTicks */
509 uint32_t ssr = LL_RTC_TIME_GetSubSecond(RTC);
510 /* read twice to make sure value it valid*/
511 while (ssr != LL_RTC_TIME_GetSubSecond(RTC))
512 {
513 ssr = LL_RTC_TIME_GetSubSecond(RTC);
514 }
515 return UINT32_MAX - ssr;
516 /* USER CODE BEGIN GetTimerTicks_Last */
517
518 /* USER CODE END GetTimerTicks_Last */
519}
520
521/* USER CODE BEGIN PrFD */
522
523/* USER CODE END PrFD */
: Header for main.c file. This file contains the common defines of the application.
void Error_Handler(void)
Default error handler called by HAL on unrecoverable errors. Disables interrupts and enters an infini...
Definition main.c:505
#define RTC_PREDIV_S
Definition main.h:137
#define RTC_N_PREDIV_S
Definition main.h:136
This file contains all the function prototypes for the rtc.c file.
RTC_HandleTypeDef hrtc
Definition rtc.c:27
void MX_RTC_Init(void)
Initialise the RTC peripheral with settings generated by STM32CubeMX. Configures the prescalers,...
Definition rtc.c:30
Function prototypes for sys_app.c file.
uint32_t TIMER_IF_Convert_ms2Tick(uint32_t timeMilliSec)
converts time in ms to time in ticks
Definition timer_if.c:333
const UTIL_TIMER_Driver_s UTIL_TimerDriver
Timer driver callbacks handler.
Definition timer_if.c:42
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
Definition timer_if.c:377
static uint32_t GetTimerTicks(void)
Get rtc timer Value in rtc tick.
Definition timer_if.c:504
void TIMER_IF_DelayMs(uint32_t delay)
a delay of delay ms by polling RTC
Definition timer_if.c:359
uint32_t TIMER_IF_BkUp_Read_Seconds(void)
reads seconds from backUp register
Definition timer_if.c:449
void TIMER_IF_BkUp_Write_Seconds(uint32_t Seconds)
write seconds in backUp register
Definition timer_if.c:427
#define TIMER_IF_DBG_PRINTF(...)
not used
Definition timer_if.c:133
const UTIL_SYSTIM_Driver_s UTIL_SYSTIMDriver
SysTime driver callbacks handler.
Definition timer_if.c:64
uint32_t TIMER_IF_Convert_Tick2ms(uint32_t tick)
converts time in ticks to time in ms
Definition timer_if.c:346
uint32_t TIMER_IF_GetTimerElapsedTime(void)
Get the timer elapsed time since timer Reference (TimerContext) was set.
Definition timer_if.c:291
uint32_t TIMER_IF_GetTimerValue(void)
Get the timer value.
Definition timer_if.c:304
#define RTC_BKP_MSBTICKS
Backup msbticks register.
Definition timer_if.c:101
#define RTC_BKP_SECONDS
Backup seconds register.
Definition timer_if.c:91
#define UTIL_TIMER_IRQ_MAP_PROCESS()
Definition timer_if.c:113
void HAL_RTCEx_SSRUEventCallback(RTC_HandleTypeDef *hrtc)
Definition timer_if.c:388
UTIL_TIMER_Status_t TIMER_IF_StopTimer(void)
Stop the Alarm.
Definition timer_if.c:248
#define RTC_BKP_SUBSECONDS
Backup subseconds register.
Definition timer_if.c:96
uint32_t TIMER_IF_GetMinimumTimeout(void)
Return the minimum timeout in ticks the RTC is able to handle.
Definition timer_if.c:320
static void TIMER_IF_BkUp_Write_MSBticks(uint32_t MSBticks)
Writes MSBticks to backup register Absolute RTC time in tick is (MSBticks)<<32 + (32bits binary count...
Definition timer_if.c:480
static uint32_t TIMER_IF_BkUp_Read_MSBticks(void)
Reads MSBticks from backup register Absolute RTC time in tick is (MSBticks)<<32 + (32bits binary coun...
Definition timer_if.c:491
#define MIN_ALARM_DELAY
Minimum timeout delay of Alarm in ticks.
Definition timer_if.c:86
#define UTIL_TIMER_IRQ_MAP_INIT()
Map UTIL_TIMER_IRQ can be overridden in utilities_conf.h to Map on Task rather then Isr.
Definition timer_if.c:109
uint32_t TIMER_IF_GetTime(uint16_t *mSeconds)
Get rtc time.
Definition timer_if.c:403
uint32_t TIMER_IF_BkUp_Read_SubSeconds(void)
reads SubSeconds from backUp register
Definition timer_if.c:462
UTIL_TIMER_Status_t TIMER_IF_StartTimer(uint32_t timeout)
Set the alarm.
Definition timer_if.c:220
static uint32_t RtcTimerContext
RtcTimerContext.
Definition timer_if.c:149
uint32_t TIMER_IF_SetTimerContext(void)
set timer Reference (TimerContext)
Definition timer_if.c:266
UTIL_TIMER_Status_t TIMER_IF_Init(void)
Init RTC hardware.
Definition timer_if.c:183
void TIMER_IF_BkUp_Write_SubSeconds(uint32_t SubSeconds)
writes SubSeconds in backUp register
Definition timer_if.c:438
uint32_t TIMER_IF_GetTimerContext(void)
Get the RTC timer Reference.
Definition timer_if.c:280
static bool RTC_Initialized
Indicates if the RTC is already Initialized or not.
Definition timer_if.c:144
configuration of the timer_if.c instances
uint32_t TIMER_IF_Convert_ms2Tick(uint32_t timeMilliSec)
converts time in ms to time in ticks
Definition timer_if.c:333
uint32_t TIMER_IF_GetTime(uint16_t *subSeconds)
Get rtc time.
Definition timer_if.c:403
uint32_t TIMER_IF_BkUp_Read_Seconds(void)
reads seconds from backUp register
Definition timer_if.c:449
void TIMER_IF_BkUp_Write_Seconds(uint32_t Seconds)
write seconds in backUp register
Definition timer_if.c:427
uint32_t TIMER_IF_Convert_Tick2ms(uint32_t tick)
converts time in ticks to time in ms
Definition timer_if.c:346
uint32_t TIMER_IF_GetTimerElapsedTime(void)
Get the timer elapsed time since timer Reference (TimerContext) was set.
Definition timer_if.c:291
uint32_t TIMER_IF_GetTimerValue(void)
Get the timer value.
Definition timer_if.c:304
UTIL_TIMER_Status_t TIMER_IF_StopTimer(void)
Stop the Alarm.
Definition timer_if.c:248
uint32_t TIMER_IF_GetMinimumTimeout(void)
Return the minimum timeout in ticks the RTC is able to handle.
Definition timer_if.c:320
uint32_t TIMER_IF_BkUp_Read_SubSeconds(void)
reads SubSeconds from backUp register
Definition timer_if.c:462
UTIL_TIMER_Status_t TIMER_IF_StartTimer(uint32_t timeout)
Set the alarm.
Definition timer_if.c:220
uint32_t TIMER_IF_SetTimerContext(void)
set timer Reference (TimerContext)
Definition timer_if.c:266
UTIL_TIMER_Status_t TIMER_IF_Init(void)
Init RTC hardware.
Definition timer_if.c:183
void TIMER_IF_BkUp_Write_SubSeconds(uint32_t SubSeconds)
writes SubSeconds in backUp register
Definition timer_if.c:438
uint32_t TIMER_IF_GetTimerContext(void)
Get the RTC timer Reference.
Definition timer_if.c:280
Definitions for modules requiring utilities.