Projet_Voilier/Services/bordage.c

30 lines
No EOL
741 B
C

#include "stm32f10x.h"
#include <GPIO.h>
#include <bordage.h>
#include <MyTimer.h>
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 Update_bodage (TIM_TypeDef *Timer, char channel){
float val;
val = TIM4->CNT;
if (val <4.0*45.0 || val > 4.0*(360.0-45.0)) {
Mytimer_PWM_cycle(Timer, channel, 9);
}
else
if (val <= 720.0) {
val/= -108.0;
val+= 35.0/3.0;
Mytimer_PWM_cycle(Timer, channel, (int) val);
}
else{
val/= 108.0;
val+= -5.0/3.0;
Mytimer_PWM_cycle(Timer, channel, (int) val);
}
}