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

64 lines
2.2 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 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 dune structure (son adresse) contenant les informations de base
* @Note -> Fonction à lancer systématiquement avant daller 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 nest
* 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