Periph-Voilier/MyDrivers/MyPWM.h
2020-11-24 22:56:56 +01:00

52 lines
1.5 KiB
C

#ifndef MYPWM_H
#define MYPWM_H
/*
Driver pour la gestion de la PWM de Timers 1 à 4
*/
#include "stm32f103xb.h"
/**
* @brief Configure un signal PWM en mode Output
* @note Penser à appeler Timer_Conf() de Timer.h avant !
* @param 1 timer, 1 channel
* @retval None
*/
void MyPWM_Conf_Output(TIM_TypeDef * Timer, int channel);
/**
* @brief Configuration du timer en mode PWM
* @note
* @param TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
* @retval None
*/
void MyPWM_girouette_Conf_Output(TIM_TypeDef *TIMx, uint32_t Channel);
/**
* @brief Configure un timer en mode PWM Input
* @note Penser à appeler Timer_Conf() de Timer.h avant !
* @param 1 timer, 2 channels associés (1&2 ou 3&4)
* @retval None
*/
void MyPWM_Conf_Input(TIM_TypeDef * Timer, int channel1, int channel2);
/**
* @brief Définit la durée de l'impulsion à l'état haut
* @note Fct utilisée en émission
* @param 1 timer, la valeur de changement de la PWM, 1 channel associé au timer
* @retval None
*/
void MyPWM_Set_Impulse_Duration(TIM_TypeDef * Timer, uint32_t CompareValue, int channel);
void MyPWM_girouette_Set_Impulse_Duration(TIM_TypeDef * Timer, int Percentage, int channel);
/**
* @brief Renvoie le duty cycle de la PWM en entrée
* @note Fct utilisée en réception
* @param 1 timer et 2 channels associés (1&2 ou 3&4)
* @retval renvoie le duty cycle en pour mille pour améliorer la résolution
*/
int MyPWM_Duty_Cycle_Permilles(TIM_TypeDef * Timer, int channel1, int channel2);
#endif