Compare commits
4 commits
329f27dbed
...
9c653884c0
Author | SHA1 | Date | |
---|---|---|---|
9c653884c0 | |||
dca1dd52cf | |||
1feb054b2b | |||
0da346a774 |
5 changed files with 168 additions and 24 deletions
|
@ -130,7 +130,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGTARM</Key>
|
||||
<Name>(1010=668,211,1044,768,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=193,123,614,528,1)(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,74,1215,768,0)(131=-1,-1,-1,-1,0)(132=772,58,1366,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)</Name>
|
||||
<Name>(1010=668,263,1044,820,0)(1007=-1,-1,-1,-1,0)(1008=179,560,555,796,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=1037,48,1458,453,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=524,166,1118,860,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)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
|
@ -158,7 +158,22 @@
|
|||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>allure</ItemText>
|
||||
<ItemText>commandouille,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture1</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lecture2</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<Tracepoint>
|
||||
|
@ -170,7 +185,7 @@
|
|||
<aLwin>1</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>1</aSer1>
|
||||
<aSer2>1</aSer2>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>1</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
|
@ -312,7 +327,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGDARM</Key>
|
||||
<Name>(1010=-1,-1,-1,-1,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=120,153,415,450,0)(120=149,287,570,714,0)(121=-1,-1,-1,-1,0)(122=896,89,1317,516,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=248,17,842,768,0)(131=521,17,1115,768,0)(132=709,17,1303,768,0)(133=-1,-1,-1,-1,0)(160=249,199,697,613,0)(161=454,216,902,630,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)(234=-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)</Name>
|
||||
<Name>(1010=-1,-1,-1,-1,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=120,153,415,450,0)(120=204,207,625,634,0)(121=-1,-1,-1,-1,0)(122=896,89,1317,516,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=248,17,842,768,0)(131=521,17,1115,768,0)(132=709,34,1303,785,0)(133=-1,-1,-1,-1,0)(160=79,295,527,709,1)(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)(234=-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)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
|
@ -351,7 +366,7 @@
|
|||
<Type>0</Type>
|
||||
<LineNumber>99</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134218824</Address>
|
||||
<Address>134221672</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
|
@ -762,13 +777,13 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>13</FileNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>5</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\Src\Transmission.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Transmission.h</FilenameWithoutPath>
|
||||
<PathWithFileName>..\Src\Gouvernail.h</PathWithFileName>
|
||||
<FilenameWithoutPath>Gouvernail.h</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
|
@ -782,7 +797,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -794,7 +809,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>15</FileNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -806,7 +821,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>16</FileNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -818,7 +833,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>17</FileNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -830,7 +845,7 @@
|
|||
</File>
|
||||
<File>
|
||||
<GroupNumber>3</GroupNumber>
|
||||
<FileNumber>18</FileNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -858,7 +873,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>5</GroupNumber>
|
||||
<FileNumber>19</FileNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
@ -878,7 +893,7 @@
|
|||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>6</GroupNumber>
|
||||
<FileNumber>20</FileNumber>
|
||||
<FileNumber>21</FileNumber>
|
||||
<FileType>2</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
|
|
|
@ -448,9 +448,15 @@
|
|||
<FilePath>..\Src\maths.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<<<<<<< HEAD
|
||||
<FileName>Transmission.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Transmission.h</FilePath>
|
||||
=======
|
||||
<FileName>Gouvernail.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Gouvernail.h</FilePath>
|
||||
>>>>>>> Gouvernail
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
@ -954,9 +960,15 @@
|
|||
<FilePath>..\Src\maths.c</FilePath>
|
||||
</File>
|
||||
<File>
|
||||
<<<<<<< HEAD
|
||||
<FileName>Transmission.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Transmission.h</FilePath>
|
||||
=======
|
||||
<FileName>Gouvernail.h</FileName>
|
||||
<FileType>5</FileType>
|
||||
<FilePath>..\Src\Gouvernail.h</FilePath>
|
||||
>>>>>>> Gouvernail
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
#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)
|
||||
#define MAX_PWM_OUTPUT (34999)
|
||||
|
||||
/**
|
||||
* @brief Configure le récepteur de la télécommande ainsi que le plateau rotatif.
|
||||
* @note Configuration du port PB6 et 7 en alternate input pour récupérer les signaux
|
||||
Configuration des deux channels du TIM4 pour la lecture de la PWM
|
||||
Configuration du PA1 en alternate output (commande PWM vitesse) et PA2 en output push pull pour commander le sens
|
||||
Configuration du TIM2_CH2 pour la sortie PWM
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void ConfGouvernail(void) {
|
||||
// Configuration des IO
|
||||
// Liberation de la clock du port A et B
|
||||
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
|
||||
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB);
|
||||
|
||||
// Configuration des IO -> pin B6 en alternate input, pin A1 en alternate output, et, pin A2 en output push pull
|
||||
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_6, 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_2MHz);
|
||||
LL_GPIO_SetPinOutputType(GPIOA, LL_GPIO_PIN_2, LL_GPIO_OUTPUT_PUSHPULL);
|
||||
|
||||
|
||||
//Configuration des timers
|
||||
// Libération de la clock du timer
|
||||
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2);
|
||||
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4);
|
||||
|
||||
// Configuration des canaux du timer -> TIM2 CH2 et PWM output (plages de 20ms)
|
||||
LL_TIM_OC_InitTypeDef Tim2Initializer;
|
||||
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, MAX_PWM);
|
||||
LL_TIM_SetPrescaler(TIM2, 71);
|
||||
LL_TIM_OC_SetCompareCH2(TIM2, 0);
|
||||
LL_TIM_EnableCounter(TIM2);
|
||||
LL_TIM_CC_EnableChannel(TIM2, LL_TIM_CHANNEL_CH2);
|
||||
|
||||
LL_TIM_IC_InitTypeDef Tim4Initializer;
|
||||
LL_TIM_IC_StructInit(&Tim4Initializer);
|
||||
Tim4Initializer.ICActiveInput = LL_TIM_ACTIVEINPUT_DIRECTTI;
|
||||
Tim4Initializer.ICPolarity = LL_TIM_IC_POLARITY_RISING;
|
||||
LL_TIM_IC_Init(TIM4, LL_TIM_CHANNEL_CH1, &Tim4Initializer);
|
||||
Tim4Initializer.ICActiveInput = LL_TIM_ACTIVEINPUT_INDIRECTTI;
|
||||
Tim4Initializer.ICPolarity = LL_TIM_IC_POLARITY_FALLING;
|
||||
LL_TIM_IC_Init(TIM4, LL_TIM_CHANNEL_CH2, &Tim4Initializer);
|
||||
LL_TIM_SetAutoReload(TIM4, MAX_PWM_OUTPUT);
|
||||
LL_TIM_SetPrescaler(TIM4, 71);
|
||||
LL_TIM_SetSlaveMode(TIM4, LL_TIM_SLAVEMODE_RESET);
|
||||
LL_TIM_SetTriggerInput(TIM4, LL_TIM_TS_TI1FP1);
|
||||
LL_TIM_EnableCounter(TIM4);
|
||||
LL_TIM_CC_EnableChannel(TIM4, LL_TIM_CHANNEL_CH1);
|
||||
LL_TIM_CC_EnableChannel(TIM4, LL_TIM_CHANNEL_CH2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Renvoi la valeur envoyée par la télécommande
|
||||
* @note Représentation de la donnée en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
* @param None
|
||||
* @retval La commande de la télécommande, représenté en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
*/
|
||||
int LireTelecommande(void) {
|
||||
int lecture = LL_TIM_IC_GetCaptureCH2(TIM4) + 1;
|
||||
return ((lecture - 1500) / 5);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Commande le moteur en fonction de la commande donnée.
|
||||
* @note Commande le sens et la vitesse
|
||||
* @param Commande en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
* @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)));
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef GOUVERNAIL_H
|
||||
#define GOUVERNAIL_H
|
||||
|
||||
/**
|
||||
* @brief Configure le récepteur de la télécommande ainsi que le plateau rotatif.
|
||||
* @note Configuration du port PB6 et 7 en alternate input pour récupérer les signaux de la télécommande
|
||||
Configuration des deux channels du TIM4 pour la lecture de la PWM
|
||||
Configuration du PA1 en alternate output (commande PWM vitesse) et PA2 en output push pull pour commander le sens
|
||||
Configuration du TIM2_CH2 pour la sortie PWM
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void ConfGouvernail(void);
|
||||
|
||||
/**
|
||||
* @brief Renvoi la valeur envoyée par la télécommande
|
||||
* @note Représentation de la donnée en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
* @param None
|
||||
* @retval La commande de la télécommande, représenté en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
*/
|
||||
int LireTelecommande(void);
|
||||
|
||||
/**
|
||||
* @brief Commande le moteur en fonction de la commande donnée.
|
||||
* @note Commande le sens et la vitesse
|
||||
* @param Commande en % bidirectionnel -> int entre -100 et 100 (sens codé par le signe, vitesse par la valeur absolue)
|
||||
* @retval None
|
||||
*/
|
||||
void CommanderMoteur(int commande);
|
||||
|
||||
#endif
|
|
@ -10,8 +10,6 @@
|
|||
#include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
|
||||
#include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
|
||||
|
||||
|
||||
|
||||
void SystemClock_Config(void);
|
||||
|
||||
/**
|
||||
|
@ -25,7 +23,7 @@ void Setup(){
|
|||
//ConfAntiChavirement();
|
||||
ConfAllure();
|
||||
ConfVoile();
|
||||
//ConfGouvernail();
|
||||
ConfGouvernail();
|
||||
|
||||
|
||||
}
|
||||
|
@ -59,12 +57,11 @@ void Background(){
|
|||
TendreVoile(CalculerTension(RecupAllure())); //on tend la voile gr<67>ce <20> la tension obtenue
|
||||
|
||||
//Gouvernail
|
||||
/*int valeurTelecommande = LireTelecommande(); //on lit la valeur renvoy<6F>e par la t<>l<EFBFBD>commande
|
||||
int vitesse = CalculerVitesse(valeurTelecommande);//gr<67>ace <20> la valeur de la telecommande on calcule la vitesse souhait<69>e
|
||||
CommanderMoteur(vitesse);//On commande le moteur pour aller <20> la vitesse voulue
|
||||
int commande = LireTelecommande(); //on lit la valeur renvoy<6F>e par la t<>l<EFBFBD>commande
|
||||
CommanderMoteur(commande); //On commande le moteur pour aller <20> la vitesse voulue
|
||||
|
||||
//Anti-Chavirement
|
||||
int rouli = RecupRouli();
|
||||
/*int rouli = RecupRouli();
|
||||
int danger = CalculerDanger(rouli);//renvoi boolean : int <20> 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 <20> 90)
|
||||
|
@ -81,7 +78,7 @@ int main(){
|
|||
while(1){
|
||||
Background();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -133,7 +130,7 @@ void SystemClock_Config(void)
|
|||
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
|
||||
|
||||
/* Set systick to 1ms in using frequency set to 72MHz */
|
||||
//LL_Init1msTick(72000000); !! d<>commenter que si l'IT est r<>cup<75>r<EFBFBD>e
|
||||
LL_Init1msTick(72000000); //!! d<>commenter que si l'IT est r<>cup<75>r<EFBFBD>e
|
||||
|
||||
/* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
|
||||
LL_SetSystemCoreClock(72000000);
|
||||
|
|
Loading…
Reference in a new issue