From 6e98fa42c57480e8b35949ee3717c0dca8bba4d5 Mon Sep 17 00:00:00 2001 From: William Woodward Date: Wed, 3 Dec 2025 09:59:14 +0100 Subject: [PATCH] FIN --- Services/bordage.c | 33 ++++++++++++++++++++++----------- Services/bordage.h | 6 ++++-- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Services/bordage.c b/Services/bordage.c index 21915b3..1a46c41 100644 --- a/Services/bordage.c +++ b/Services/bordage.c @@ -5,37 +5,48 @@ // int* anglequonveut=0; A DECLARER DANS LE MAIN -void Init_bordage(TIM_TypeDef *Timer, char channel, unsigned short ValARR, unsigned short ValPSC){ - MyTimer_Init(Timer,ValARR,ValPSC); - Mytimer_PWM(Timer, channel); - MyTimer_Base_Start(Timer); - MyGPIO_Init(GPIOA, 0, AltOut_Ppull); +void Init_bordage(){ + MyTimer_Init(TIM1,3200,450); + Mytimer_PWM(TIM1, 1); + MyTimer_Base_Start(TIM1); + MyGPIO_Init(GPIOA, 8, AltOut_Ppull); } -void Update_bodage (TIM_TypeDef *Timer, char channel, float roulis, int* angle){ +void Update_bordage (TIM_TypeDef *Timer, char channel, float roulis){ float val; - int val2; val = TIM4->CNT; - val2 = TIM4->CNT; if (roulis < -40.0 || roulis > 40.0) { Mytimer_PWM_cycle(Timer, channel, 5); } else { if (val <4.0*45.0 || val > 4.0*(360.0-45.0)) { - Mytimer_PWM_cycle(Timer, channel, 9); + Mytimer_PWM_cycle(Timer, channel, 10); } else if (val <= 720.0) { - *angle = 2*(val2)/12 -30; val/= -108.0; val+= 35.0/3.0; Mytimer_PWM_cycle(Timer, channel, (int) val); } else{ - *angle = -2*(val2)/12 + 210; val/= 108.0; val+= -5.0/3.0; Mytimer_PWM_cycle(Timer, channel, (int) val); } } +} + +int Calcul_Angle(){ + int val = TIM4->CNT; + if (val <4.0*45.0 || val > 4.0*(360.0-45.0)) { + return 0; + } + else{ + if (val <= 720.0) { + return 2*(val)/12 -30; + } + else{ + return -2*(val)/12 + 210; + } + } } \ No newline at end of file diff --git a/Services/bordage.h b/Services/bordage.h index 1d98bf5..d362d59 100644 --- a/Services/bordage.h +++ b/Services/bordage.h @@ -2,8 +2,10 @@ #define BORDAGE_H #include "stm32f10x.h" -void Init_bordage(TIM_TypeDef *Timer, char channel, unsigned short ValARR, unsigned short ValPSC); +void Init_bordage(); -void Update_bodage (TIM_TypeDef *Timer, char channel, float roulis, int* angle); +void Update_bordage (TIM_TypeDef *Timer, char channel, float roulis); + +int Calcul_Angle(); #endif \ No newline at end of file