#include "App_girouette.h" void App_Girouette_Init(void) { MyTimer_Struct_TypeDef Encodeur; Encodeur.Timer = TIM4; Encodeur.channel = 2; MyTimer_Base_Init(&Encodeur); MyTimer_ConfigureEncoder(&Encodeur); MyTimer_Start(&Encodeur); // PB6 PB7 MyGPIO_Struct_TypeDef TI1; TI1.GPIO_Pin = 6; TI1.GPIO_Conf = In_Floating; TI1.GPIO = GPIOB; MyGPIO_Init(&TI1); MyGPIO_Struct_TypeDef TI2; TI2.GPIO_Pin = 7; TI2.GPIO_Conf = In_Floating; TI2.GPIO = GPIOB; MyGPIO_Init(&TI2); } uint16_t App_Girouette_GetDirection(void) { uint16_t cnt = TIM_GetCounter(TIM4); // Lit la valeur actuelle du compteur CNT uint16_t arr = TIM4->ARR + 1; // Lit la valeur de ARR configurée pour le timer TIM4 // Convertit la valeur CNT en direction de vent uint16_t direction = (360.0 / 1440.0) * cnt; return direction; }