diff --git a/MDK-ARM/Project.uvoptx b/MDK-ARM/Project.uvoptx
index 6e6df50..3ebe251 100644
--- a/MDK-ARM/Project.uvoptx
+++ b/MDK-ARM/Project.uvoptx
@@ -130,7 +130,7 @@
0
DLGTARM
- (1010=668,263,1044,820,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1027,281,1448,686,0)(121=-1,-1,-1,-1,0)(122=348,235,769,640,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=87,183,486,528,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=621,97,1215,791,0)(131=738,113,1332,807,0)(132=784,58,1378,752,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+ (1010=668,263,1044,820,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=1027,281,1448,686,0)(121=-1,-1,-1,-1,0)(122=348,235,769,640,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=87,183,486,528,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=621,97,1215,791,0)(131=157,121,751,815,0)(132=147,87,741,781,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
0
@@ -157,6 +157,70 @@
0
0
+ 35
+ 1
+ 134219770
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\Src\Gouvernail.c
+
+ \\NUCLEO_F103RB\../Src/Gouvernail.c\35
+
+
+ 1
+ 0
+ 66
+ 1
+ 134219278
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\Src\Voilier.c
+
+ \\NUCLEO_F103RB\../Src/Voilier.c\66
+
+
+ 2
+ 0
+ 67
+ 1
+ 134219284
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\Src\Voilier.c
+
+ \\NUCLEO_F103RB\../Src/Voilier.c\67
+
+
+ 3
+ 0
+ 68
+ 1
+ 134219292
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\Src\Voilier.c
+
+ \\NUCLEO_F103RB\../Src/Voilier.c\68
+
+
+ 4
+ 0
56
1
0
diff --git a/Src/Gouvernail.c b/Src/Gouvernail.c
index e094159..9732d7f 100644
--- a/Src/Gouvernail.c
+++ b/Src/Gouvernail.c
@@ -1,6 +1,9 @@
#include "stm32f1xx_ll_gpio.h" // GPIO
#include "stm32f1xx_ll_bus.h" // RCC
#include "stm32f1xx_ll_tim.h" // TIMER
+#include "maths.h"
+
+#define MAX_PWM (19999)
/**
* @brief Configure le récepteur de la télécommande ainsi que le plateau rotatif.
@@ -22,8 +25,9 @@ void ConfGouvernail(void) {
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_7, LL_GPIO_MODE_FLOATING);
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_1, LL_GPIO_MODE_ALTERNATE);
LL_GPIO_SetPinOutputType(GPIOA, LL_GPIO_PIN_1, LL_GPIO_OUTPUT_PUSHPULL);
- LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_2, LL_GPIO_MODE_OUTPUT);
+ LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_2, LL_GPIO_MODE_OUTPUT_2MHz);
LL_GPIO_SetPinOutputType(GPIOA, LL_GPIO_PIN_2, LL_GPIO_OUTPUT_PUSHPULL);
+ LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_2);
//Configuration des timers
@@ -36,7 +40,7 @@ void ConfGouvernail(void) {
LL_TIM_OC_StructInit(&Tim2Initializer);
Tim2Initializer.OCMode = LL_TIM_OCMODE_PWM1;
LL_TIM_OC_Init(TIM2, LL_TIM_CHANNEL_CH2, &Tim2Initializer);
- LL_TIM_SetAutoReload(TIM2, 19999);
+ LL_TIM_SetAutoReload(TIM2, MAX_PWM);
LL_TIM_SetPrescaler(TIM2, 71);
LL_TIM_OC_SetCompareCH2(TIM2, 0);
LL_TIM_EnableCounter(TIM2);
@@ -60,4 +64,10 @@ int LireTelecommande(void) {
* @retval None
*/
void CommanderMoteur(int commande) {
+ if (commande < 0) {
+ LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_2);
+ } else {
+ LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_2);
+ }
+ LL_TIM_OC_SetCompareCH2(TIM2, (int)(((float)abs(commande)) * (((float)MAX_PWM) / 100.0)));
}
diff --git a/Src/Voilier.c b/Src/Voilier.c
index 5b057e5..8d5780b 100644
--- a/Src/Voilier.c
+++ b/Src/Voilier.c
@@ -59,12 +59,17 @@ void Background(){
TendreVoile(CalculerTension(RecupAllure())); //on tend la voile grâce à la tension obtenue
//Gouvernail
- /*int valeurTelecommande = LireTelecommande(); //on lit la valeur renvoyée par la télécommande
- int vitesse = CalculerVitesse(valeurTelecommande);//gràace à la valeur de la telecommande on calcule la vitesse souhaitée
- CommanderMoteur(vitesse);//On commande le moteur pour aller à la vitesse voulue
-
+ //int commande = LireTelecommande(); //on lit la valeur renvoyée par la télécommande
+ CommanderMoteur(0); //On commande le moteur pour aller à la vitesse voulue
+ CommanderMoteur(-0);
+ CommanderMoteur(-1);
+ CommanderMoteur(1);
+ CommanderMoteur(-50);
+ CommanderMoteur(50);
+ CommanderMoteur(-100);
+ CommanderMoteur(100);
//Anti-Chavirement
- int rouli = RecupRouli();
+ /*int rouli = RecupRouli();
int danger = CalculerDanger(rouli);//renvoi boolean : int à 0 si faux et 1 si vrai
if(danger){
TendreVoile(90); //si il y a danger on relache les voiles (relacher les voiles = les mettre à 90)