Periph-Voilier/Services/MySequencer.c
2020-11-24 22:56:56 +01:00

61 lines
1.2 KiB
C

#include "MySequencer.h"
#include "MySysTick.h"
#include "Moteur.h"
#include "MyRF.h"
#include "girouette.h"
#include "antichavirement.h"
#include "ADC.h"
#include "MyPWM.h"
#include "stm32f1xx_ll_tim.h"
int cnt_3sec = 0;
float pourcentage = 0.0;
void MySequencer_Task_10ms (void);
void MySequencer_Conf(void) {
MySysTick_Conf(0xAFC80);
MySysTick_IT_Conf(MySequencer_Task_10ms,3);
MySysTick_IT_Enable();
}
/**
* @brief Tâche à lancer toutes les 10ms
* @note None
* @param None
* @retval None
*/
void MySequencer_Task_10ms (void) {
//Incrémentation du compteur pour envoi toutes les 3 secondes
cnt_3sec++;
//Transmission données toutes les 3 secondes
if(cnt_3sec == 300) {
MyRF_Transmit_3s((int)((Calcul_pourcentage_duree()-0.05)*2000.0), (int)(Angle_Vent()));
cnt_3sec = 0;
}
//Réglage sens et vitesse moteur
int Duty_Cycle = MyRF_Input_Duty_Cycle();
if (Duty_Cycle >= 0) {
Moteur_Speed(Duty_Cycle);
Moteur_Sens(1);
}
else {
Moteur_Speed(-Duty_Cycle);
Moteur_Sens(0);
}
//Gestion de l'antichavirement
antichavirement(start_ADC());
//Gestion du bordage
pourcentage = Calcul_pourcentage_duree();
pourcentage *= 1000;
MyPWM_girouette_Set_Impulse_Duration(TIM1,pourcentage,LL_TIM_CHANNEL_CH1);
}