This commit is contained in:
William Woodward 2025-12-03 09:59:14 +01:00
parent 7c2658d178
commit 6e98fa42c5
2 changed files with 26 additions and 13 deletions

View file

@ -5,37 +5,48 @@
// int* anglequonveut=0; A DECLARER DANS LE MAIN // int* anglequonveut=0; A DECLARER DANS LE MAIN
void Init_bordage(TIM_TypeDef *Timer, char channel, unsigned short ValARR, unsigned short ValPSC){ void Init_bordage(){
MyTimer_Init(Timer,ValARR,ValPSC); MyTimer_Init(TIM1,3200,450);
Mytimer_PWM(Timer, channel); Mytimer_PWM(TIM1, 1);
MyTimer_Base_Start(Timer); MyTimer_Base_Start(TIM1);
MyGPIO_Init(GPIOA, 0, AltOut_Ppull); 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; float val;
int val2;
val = TIM4->CNT; val = TIM4->CNT;
val2 = TIM4->CNT;
if (roulis < -40.0 || roulis > 40.0) { if (roulis < -40.0 || roulis > 40.0) {
Mytimer_PWM_cycle(Timer, channel, 5); Mytimer_PWM_cycle(Timer, channel, 5);
} }
else { else {
if (val <4.0*45.0 || val > 4.0*(360.0-45.0)) { 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 else
if (val <= 720.0) { if (val <= 720.0) {
*angle = 2*(val2)/12 -30;
val/= -108.0; val/= -108.0;
val+= 35.0/3.0; val+= 35.0/3.0;
Mytimer_PWM_cycle(Timer, channel, (int) val); Mytimer_PWM_cycle(Timer, channel, (int) val);
} }
else{ else{
*angle = -2*(val2)/12 + 210;
val/= 108.0; val/= 108.0;
val+= -5.0/3.0; val+= -5.0/3.0;
Mytimer_PWM_cycle(Timer, channel, (int) val); 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;
}
}
} }

View file

@ -2,8 +2,10 @@
#define BORDAGE_H #define BORDAGE_H
#include "stm32f10x.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 #endif