From 7e6eb879f1193ba980a821d6f344c9ad49baf2ee Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Mon, 9 Nov 2020 10:01:39 +0100 Subject: [PATCH] add basic scheduler functions --- Services/Scheduler.c | 21 +++++++++++++++++++++ Services/Scheduler.h | 22 ++++++++++++++++++++++ Src/main.c | 30 ++++++++++++++++++++++++++---- 3 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 Services/Scheduler.c create mode 100644 Services/Scheduler.h diff --git a/Services/Scheduler.c b/Services/Scheduler.c new file mode 100644 index 0000000..4c78041 --- /dev/null +++ b/Services/Scheduler.c @@ -0,0 +1,21 @@ +#include "Scheduler.h" +#include "Timer.h" +#include "stm32f1xx_ll_utils.h" + +void (*it_callback_SysTick)(void); + +void SysTick_Handler(void) +{ + (*it_callback_SysTick)(); +} + +void Scheduler_conf(void (*it_callback) (void)) +{ + it_callback_SysTick = it_callback; + LL_Init1msTick(1000); +} + +void Scheduler_start(void) +{ + +} diff --git a/Services/Scheduler.h b/Services/Scheduler.h new file mode 100644 index 0000000..13c9c89 --- /dev/null +++ b/Services/Scheduler.h @@ -0,0 +1,22 @@ +#ifndef SCHEDULER_H +#define SCHEDULER_H + +#include "stm32f103xb.h" + +/** + * @brief Configure l'horloge interne comme ordonanceur + * @note + * @param (void)* it_callback : Tache de fond à executer + * @retval None + */ +void Scheduler_conf(void (*it_callback) (void)); + +/** + * @brief Démarre ordonanceur + * @note + * @param None + * @retval None + */ +void Scheduler_start(void); + +#endif diff --git a/Src/main.c b/Src/main.c index c440ba6..1d6d586 100644 --- a/Src/main.c +++ b/Src/main.c @@ -21,17 +21,36 @@ #include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config #include "Sail.h" +#include "Scheduler.h" void SystemClock_Config(void); /* Private functions ---------------------------------------------------------*/ +int counter = 1; + +void backgroundTask() +{ + counter++; + Sail_background(); +} + + +void configurePeripherals() +{ + Sail_conf(); +} + +void startPeripherals() +{ + Sail_start(); +} + /** * @brief Main program * @param None * @retval None */ - int main(void) { /* Configure the system clock to 72 MHz */ @@ -43,9 +62,12 @@ int main(void) // Lancement chronomètre // Chrono_Start(); // time = Chrono_Read(); - - Sail_conf(); - Sail_start(); + configurePeripherals(); + startPeripherals(); + + Scheduler_conf(backgroundTask); + Scheduler_start(); + while (1) { }