Projet-Voilier-3/driver/Driver_Timer.h

56 lines
1.8 KiB
C
Raw 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
* @param -> Param<61>tre sous forme d<>une structure (son adresse) contenant les informations de base
* @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);
/*#define MyTimer_Base_Start(Timer) ...
#define MyTimer_Base_Stop(Timer) ...
*/
void MyTimer_Start(MyTimer_Struct_TypeDef * Timer) ;
void MyTimer_Stop(MyTimer_Struct_TypeDef * Timer) ;
/**
**************************************************************************************************
* @brief
* @param : -TIM_TypeDef * Timer : Timer concerne
- char Prio: de 0 a 15
* @Note : La fonction MyTimer_Base_Init doit avoir ete lancee au prealable
**************************************************************************************************
*/
void MyTimer_ActiveIT (TIM_TypeDef * Timer, char Prio, void (*IT_function)(void));
/**
* @brief
* @param
* @Note Active le channel sp<73>cifi<66> sur Timer le timer sp<73>cifi<66>
* 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 * Timer, char Channel);
void MyTimer_ConfigurePWM(MyTimer_Struct_TypeDef *Timer, uint16_t duty_cycle);
void MyTimer_SetPWMDutyCycle(MyTimer_Struct_TypeDef *Timer, uint16_t duty_cycle);
void MyTimer_ConfigureEncoder(MyTimer_Struct_TypeDef *Timer);
#endif