107 rivejä
2 KiB
C
107 rivejä
2 KiB
C
// RIEN A MODIFIER //
|
|
|
|
#ifndef CHRONO_H
|
|
#define CHRONO_H
|
|
|
|
/*
|
|
Service permettant de chornométrer jusqu'à 59mn 59s 99 1/100
|
|
Utilise un timer au choix (TIMER1 à TIMER4).
|
|
Utilise la lib MyTimers.h /.c
|
|
*/
|
|
|
|
#include "stm32f103xb.h"
|
|
|
|
/* =====================================================================================
|
|
Les fonctions qui gèrent les IO (ajout par rapport à l'activité 1)
|
|
=======================================================================================*/
|
|
|
|
|
|
#define PinStart LL_GPIO_PIN_8
|
|
#define PinStop LL_GPIO_PIN_6
|
|
// à compléter pour la pin reset du chronometre
|
|
#define PinLED LL_GPIO_PIN_10
|
|
#define GPIO_Pin GPIOC
|
|
#define GPIO_LED GPIOC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @brief polle les 3 entrées et gènère les actions à faire
|
|
* @note Fct à lancer en tâche de fond (non bloquante)
|
|
* @param None
|
|
* @retval None
|
|
*/
|
|
|
|
void Chrono_Background(void);
|
|
|
|
//=======================================================================================//
|
|
|
|
|
|
|
|
|
|
// Type de donnée utilisé dans le module
|
|
|
|
typedef struct {
|
|
char Hund;
|
|
char Sec;
|
|
char Min;
|
|
} Time;
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @brief Configure le chronomètre.
|
|
* @note A lancer avant toute autre fonction.
|
|
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
|
|
* @retval None
|
|
*/
|
|
void Chrono_Conf(TIM_TypeDef * Timer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @brief Démarre le chronomètre.
|
|
* @note si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
|
|
* @param Aucun
|
|
* @retval Aucun
|
|
*/
|
|
void Chrono_Start(void);
|
|
|
|
|
|
/**
|
|
* @brief Arrête le chronomètre.
|
|
* @note
|
|
* @param Aucun
|
|
* @retval Aucun
|
|
*/
|
|
void Chrono_Stop(void);
|
|
|
|
|
|
/**
|
|
* @brief Remet le chronomètre à 0
|
|
* @note
|
|
* @param Aucun
|
|
* @retval Aucun
|
|
*/
|
|
void Chrono_Reset(void);
|
|
|
|
|
|
/**
|
|
* @brief Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
|
|
* @note
|
|
* @param Aucun
|
|
* @retval adresse de la variable Time
|
|
*/
|
|
Time * Chrono_Read(void);
|
|
|
|
void Chrono_Conf_io(void);
|
|
|
|
void Chrono_Background(void);
|
|
#endif
|