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) { }