#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�tre sous forme d�une structure (son adresse) contenant les informations du timer * @Note -> Fonction � lancer syst�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�tre sous forme d�une structure (son adresse) qui d�fini le num�ro du timer * @Note -> ************************************************************************************************* */ void MyTimer_Start(MyTimer_Struct_TypeDef * Timer); /** ************************************************************************************************* * @brief Fonction pour arr�ter le timer voulu * @param -> Param�tre sous forme d�une structure (son adresse) qui d�fini le num�ro du timer * @Note ************************************************************************************************* */ void MyTimer_Stop(MyTimer_Struct_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� ************************************************************************************************* */ void MyTimer_PWM(TIM_TypeDef * Timer, char Channel); /** ************************************************************************************************* * @brief Fonction pour configurer le PWM * @param : -TIM_TypeDef * Timer : Timer concern� * - uint8_t pwm_channel : choix du channel du PWM utilis� * - uint16_t duty_cycle : choix du temps � la l'�tat haut ************************************************************************************************* */ void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint8_t pwm_channel, uint16_t duty_cycle); void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer); #endif