67 lines
2.9 KiB
C
67 lines
2.9 KiB
C
#ifndef DRIVER_TIMER_H
|
|
#define DRIVER_TIMER_H
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
typedef struct
|
|
{
|
|
TIM_TypeDef * Timer;
|
|
unsigned short ARR;
|
|
unsigned short PSC;
|
|
} 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);
|
|
|
|
#endif
|