STM32 RTC Scheduler
RTC-based scheduler for ultra-low power applications
scheduler.h
Go to the documentation of this file.
1
15
#ifndef SCHEDULER_H
16
#define SCHEDULER_H
17
18
#ifdef __cplusplus
19
extern
"C"
{
20
#endif
21
22
/* Includes ------------------------------------------------------------------*/
23
#include "stm32l4xx_hal.h"
24
25
/* Defines -------------------------------------------------------------------*/
27
#define MAX_NUM_OF_JOBS 10U
28
29
/* Typedefs ------------------------------------------------------------------*/
31
typedef
void (*
Callback_t
)(void);
32
33
/* Structures ----------------------------------------------------------------*/
35
typedef
struct
36
{
38
uint32_t
period
;
40
uint32_t
remainingTime
;
42
uint8_t
isPending
;
44
Callback_t
callback
;
45
}
Job_t
;
46
48
typedef
struct
49
{
52
uint32_t
startTime
;
54
uint8_t
isRunning
;
56
uint8_t
numOfJobs
;
58
Job_t
jobs[
MAX_NUM_OF_JOBS
];
59
}
Scheduler_t
;
60
61
/* Functions -----------------------------------------------------------------*/
62
void
SchedulerInit
(
void
);
63
uint8_t
SchedulerAddJob
(
const
uint32_t period,
const
Callback_t
callback);
64
void
SchedulerProcess
(
void
);
65
void
SchedulerExecutePendingJobs
(
void
);
66
void
SchedulerStop
(
void
);
67
68
#ifdef __cplusplus
69
}
70
#endif
71
72
#endif
/* SCHEDULER_H */
SchedulerAddJob
uint8_t SchedulerAddJob(const uint32_t period, const Callback_t callback)
Add a new job to the scheduler.
Definition:
scheduler.c:43
Scheduler_t
Definition:
scheduler.h:48
Job_t::period
uint32_t period
Definition:
scheduler.h:38
SchedulerExecutePendingJobs
void SchedulerExecutePendingJobs(void)
Execute the pending jobs.
Definition:
scheduler.c:159
Scheduler_t::startTime
uint32_t startTime
Definition:
scheduler.h:52
Scheduler_t::numOfJobs
uint8_t numOfJobs
Definition:
scheduler.h:56
Scheduler_t::isRunning
uint8_t isRunning
Definition:
scheduler.h:54
SchedulerStop
void SchedulerStop(void)
Stop the scheduler.
Definition:
scheduler.c:188
Job_t::isPending
uint8_t isPending
Definition:
scheduler.h:42
Job_t::remainingTime
uint32_t remainingTime
Definition:
scheduler.h:40
Job_t::callback
Callback_t callback
Definition:
scheduler.h:44
SchedulerInit
void SchedulerInit(void)
Initialize the scheduler by setting its structure values to zero.
Definition:
scheduler.c:28
SchedulerProcess
void SchedulerProcess(void)
Process the scheduler.
Definition:
scheduler.c:85
MAX_NUM_OF_JOBS
#define MAX_NUM_OF_JOBS
Definition:
scheduler.h:27
Job_t
Definition:
scheduler.h:35
Callback_t
void(* Callback_t)(void)
Definition:
scheduler.h:31
include
scheduler.h
Generated by
1.8.17