projet_voilier/Drivers/Driver_TIMER.h
2021-10-15 16:28:32 +02:00

64 líneas
2,2 KiB
C

#ifndef MYTIMER_H
#define MYTIMER_H
#include "stm32f10x.h"
typedef struct {
TIM_TypeDef * Timer ;
uint16_t ARR ;
uint16_t PSC ;
} MyTimer_Struct_TypeDef ;
/*
*****************************************************************************************
* @brief
* @param -> Paramètre sous forme d’une structure (son adresse) contenant les informations de base
* @Note -> Fonction à lancer systématiquement avant d’aller plus en détail dans les conf plus fines
***********************************************************************************************
*/
void MyTimer_Base_Init(MyTimer_Struct_TypeDef * Timer) ;
void Activate_TIM(int) ;
/*
**************************************************************************************************
* @brief
* @param : - TIM_TypeDef * Timer : Timer concerné
- char Prio : de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir été lancée au préalable
**************************************************************************************************
*/
void MyTimer_Active_IT ( TIM_TypeDef * , char , void (*) (void)) ;
void TIM1_TRG_COM_IRQHandler(void) ;
void TIM2_IRQHandler(void) ;
void TIM3_IRQHandler(void) ;
void TIM4_IRQHandler(void) ;
/*
**************************************************************************************************
* @brief
* @param : - TIM_TypeDef * Timer : Timer concerné
* - char Channel : canal concerné, de 1 a 4
* @Note : Active le channel spécifié sur le timer spécifié, la gestion de la configuration I/O n’est
* pas faite dans cette fonction ni le réglage de la période de la PWM (ARR, PSC)
**************************************************************************************************
*/
void MyTimer_PWM( TIM_TypeDef *, char) ;
/*
**************************************************************************************************
* @brief
* @param : - TIM_TypeDef * Timer : Timer concerné
* - float rapport : rapport cyclique, de 0 à 1
* - char Channel : canal concerné, de 1 a 4
**************************************************************************************************
*/
void MyTimer_PWM_set_cycle(TIM_TypeDef *, float, char) ;
#define MyTimer_Base_Start(Timer) (Timer->CR1 |= 0x1)
#define MyTimer_Base_Stop(Timer) (Timer->CR1 &= ~0x1)
#endif