diff --git a/Services/bordage.c b/Services/bordage.c index 1a46c41..d22baa8 100644 --- a/Services/bordage.c +++ b/Services/bordage.c @@ -12,10 +12,11 @@ void Init_bordage(){ MyGPIO_Init(GPIOA, 8, AltOut_Ppull); } -void Update_bordage (TIM_TypeDef *Timer, char channel, float roulis){ +void Update_bordage (TIM_TypeDef *Timer, char channel, char roulis){ float val; val = TIM4->CNT; - if (roulis < -40.0 || roulis > 40.0) { + char roulisabs = (1<<7) - (roulis & 0x7F); + if ((roulis >= 40.0 && !(roulis & (1<<7))) || ((roulis & (1<<7)) && (roulisabs >= 40))) { Mytimer_PWM_cycle(Timer, channel, 5); } else { diff --git a/Services/bordage.h b/Services/bordage.h index d362d59..f2518b9 100644 --- a/Services/bordage.h +++ b/Services/bordage.h @@ -4,7 +4,7 @@ void Init_bordage(); -void Update_bordage (TIM_TypeDef *Timer, char channel, float roulis); +void Update_bordage (TIM_TypeDef *Timer, char channel, char roulis); int Calcul_Angle();