Projet-Voilier-3/driver/Driver_Timer.h
2023-04-07 14:24:09 +02:00

68 lines
2.9 KiB
C
Raw Permalink Blame History

#ifndef DRIVER_TIMER_H
#define DRIVER_TIMER_H
#include "stm32f10x.h"
typedef struct
{
TIM_TypeDef * Timer;
unsigned short ARR;
unsigned short PSC;
uint8_t channel; // 1 2 3 or 4
} MyTimer_Struct_TypeDef;
/**
*************************************************************************************************
* @brief Initialisation du timer
* @param -> Param<61>tre sous forme d<>une structure (son adresse) contenant les informations du timer
* @Note -> Fonction <20> lancer syst<73>matiquement avant d<>aller 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<61>tre sous forme d<>une structure (son adresse) qui d<>fini le num<75>ro du timer
* @Note ->
*************************************************************************************************
*/
void MyTimer_Start(MyTimer_Struct_TypeDef * Timer);
/**
*************************************************************************************************
* @brief Fonction pour arr<72>ter le timer voulu
* @param -> Param<61>tre sous forme d<>une structure (son adresse) qui d<>fini le num<75>ro du timer
* @Note
*************************************************************************************************
*/
void MyTimer_Stop(MyTimer_Struct_TypeDef * Timer);
/**
**************************************************************************************************
* @brief Active une interruption utilisant un timer
* @param : -TIM_TypeDef * Timer : Timer concern<72>
* - char Prio: de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir <20>t<EFBFBD> lanc<6E>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<72>
* - char Channel : channel du PWM concern<72>
*************************************************************************************************
*/
void MyTimer_PWM(TIM_TypeDef * Timer, char Channel);
/**
*************************************************************************************************
* @brief Fonction pour configurer le PWM
* @param : -TIM_TypeDef * Timer : Timer concern<72>
* - uint8_t pwm_channel : choix du channel du PWM utilis<69>
* - uint16_t duty_cycle : choix du temps <20> la l'<27>tat haut
*************************************************************************************************
*/
void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint8_t pwm_channel, uint16_t duty_cycle);
#endif