61 lines
1.2 KiB
C
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);
|
|
|
|
}
|