Projet-Voilier-3/driver/Driver_Timer.h
2023-04-07 13:44:55 +02:00

60 lines
2.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef DRIVER_TIMER_H
#define DRIVER_TIMER_H
#include "stm32f10x.h"
typedef struct
{
TIM_TypeDef * Timer;
unsigned short ARR;
unsigned short PSC;
} MyTimer_Struct_TypeDef;
/**
*************************************************************************************************
* @brief Initialisation du timer
* @param -> Paramètre sous forme dune structure (son adresse) contenant les informations du timer
* @Note -> Fonction à lancer systématiquement avant daller plus en détail dans les conf plus fines (PWM, codeur inc...)*************************************************************************************************
*/
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer);
/**
*************************************************************************************************
* @brief Fonction pour lancer le timer voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le numéro du timer
* @Note ->
*************************************************************************************************
*/
void MyTimer_Start(TIM_TypeDef * Timer) ;
/**
*************************************************************************************************
* @brief Fonction pour arrêter le timer voulu
* @param -> Paramètre sous forme dune structure (son adresse) qui défini le numéro du timer
* @Note
*************************************************************************************************
*/
void MyTimer_Stop(TIM_TypeDef * Timer) ;
/**
**************************************************************************************************
* @brief Active une interruption utilisant un timer
* @param : -TIM_TypeDef * Timer : Timer concerné
* - char Prio: de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir été lancée au prealable
**************************************************************************************************
*/
void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void));
/**
*************************************************************************************************
* @brief Fonction pour le timer du PWM
* @param : -TIM_TypeDef * Timer : Timer concerné
* - char Channel : channel du PWM concerné
* ni le réglage de la période de la PWM (ARR, PSC)
*************************************************************************************************
*/
void MyTimer_PWM(TIM_TypeDef * Timer, char Channel);
void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint8_t pwm_channel, uint16_t duty_cycle);
#endif