Mise en place allure.h, implémentation de la fonction toString, création d'une lib maths. implémentation d'une fonction abs dans cette lib (valeur absolue)

This commit is contained in:
Paul Faure 2020-10-19 10:32:15 +02:00
parent 36326c19dd
commit d9798f1ff0
7 changed files with 187 additions and 9 deletions

View file

@ -549,19 +549,67 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\Allure.h</PathWithFileName>
<FilenameWithoutPath>Allure.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\MyDrivers\MyTimer.h</PathWithFileName>
<FilenameWithoutPath>MyTimer.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\maths.h</PathWithFileName>
<FilenameWithoutPath>maths.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Src\maths.c</PathWithFileName>
<FilenameWithoutPath>maths.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group> </Group>
<Group> <Group>
<GroupName>Drivers/STM32f1xx_LL_Driver</GroupName> <GroupName>Drivers/STM32f1xx_LL_Driver</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>10</FileNumber> <FileNumber>14</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\LLDrivers\src\stm32f1xx_ll_rcc.c</PathWithFileName> <PathWithFileName>..\LLDrivers\src\stm32f1xx_ll_rcc.c</PathWithFileName>
@ -571,7 +619,7 @@
</File> </File>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber> <FileNumber>15</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -593,13 +641,13 @@
<Group> <Group>
<GroupName>Drivers/CMSIS</GroupName> <GroupName>Drivers/CMSIS</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>12</FileNumber> <FileNumber>16</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -613,13 +661,13 @@
<Group> <Group>
<GroupName>Example/MDK-ARM</GroupName> <GroupName>Example/MDK-ARM</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>13</FileNumber> <FileNumber>17</FileNumber>
<FileType>2</FileType> <FileType>2</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View file

@ -432,6 +432,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Src\Voile.c</FilePath> <FilePath>..\Src\Voile.c</FilePath>
</File> </File>
<File>
<FileName>Allure.h</FileName>
<FileType>5</FileType>
<FilePath>..\Src\Allure.h</FilePath>
</File>
<File>
<FileName>MyTimer.h</FileName>
<FileType>5</FileType>
<FilePath>..\MyDrivers\MyTimer.h</FilePath>
</File>
<File>
<FileName>maths.h</FileName>
<FileType>5</FileType>
<FilePath>..\Src\maths.h</FilePath>
</File>
<File>
<FileName>maths.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\maths.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@ -903,6 +923,26 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\Src\Voile.c</FilePath> <FilePath>..\Src\Voile.c</FilePath>
</File> </File>
<File>
<FileName>Allure.h</FileName>
<FileType>5</FileType>
<FilePath>..\Src\Allure.h</FilePath>
</File>
<File>
<FileName>MyTimer.h</FileName>
<FileType>5</FileType>
<FilePath>..\MyDrivers\MyTimer.h</FilePath>
</File>
<File>
<FileName>maths.h</FileName>
<FileType>5</FileType>
<FilePath>..\Src\maths.h</FilePath>
</File>
<File>
<FileName>maths.c</FileName>
<FileType>1</FileType>
<FilePath>..\Src\maths.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>

View file

@ -0,0 +1,32 @@
#include "maths.h"
void ConfAllure() {
}
int RecupAllure() {
return 0;
}
char * ToString(int alpha) {
int alpha_abs = abs(alpha);
if (alpha_abs < 45) {
return "Vent debout";
} else if (alpha < 55) {
return "Près";
} else if (alpha < 65) {
return "Bon plein";
} else if (alpha < 80) {
return "Petit largue";
} else if (alpha < 100) {
return "Travers";
} else if (alpha < 115) {
return "Largue";
} else if (alpha < 155) {
return "Grand largue";
} else if (alpha < 180) {
return "Vent arrière";
} else {
return "ERROR";
}
}

View file

@ -0,0 +1,39 @@
#ifndef ALLURE_H
#define ALLURE_H
/**
* @brief Configure la girouette pour la détection de l'allure (sens du vent).
* @note Configuration des ports PA6 et 7 en alternate input pour récupérer les signaux
Configuration des deux channels du TIM3 pour le compteur incrementeur
Configuration du PA5 avec une interruption pour capter les tours de girouette
* @param None
* @retval None
*/
void ConfAllure();
/**
* @brief Renvoi la valeur de l'allure actuelle
* @note Représentation de la donnée en degrès -> int entre -180 et 180
* @param None
* @retval L'allure, représenté en degrès par un entier entre -180 et 180
*/
int RecupAllure();
/**
* @brief Associe un chaine de caractère a une valeur d'allure.
* @note Une chaine de caractère est associé a des intervalles de alpha :
[-45, 45] -> "Vent debout"
[45, 55] -> "Près" (et intervalle opposé)
[55, 65] -> "Bon plein" (et intervalle opposé)
[65, 80] -> "Petit largue" (et intervalle opposé)
[80, 100] -> "Travers" (et intervalle opposé)
[100, 115] -> "Largue" (et intervalle opposé)
[115, 155] -> "Grand largue" (et intervalle opposé)
[155, -155] -> "Vent arrière"
Autre -> "ERROR"
* @param alpha : un entier représentant l'allure en ° (-180 à 180)
* @retval Une chaine de caractère représentant l'allure
*/
char * ToString(int alpha);
#endif

8
Src/maths.c Normal file
View file

@ -0,0 +1,8 @@
int abs(int a) {
if (a<0) {
return -a;
} else {
return a;
}
}

11
Src/maths.h Normal file
View file

@ -0,0 +1,11 @@
#ifndef MATHS_H
#define MATHS_H
/**
* @brief Valeur absolue.
* @note Si a < 0 renvoi -a, sinon, a
* @param a : un entier
* @retval La valeur absolue de a
*/
int abs(int a);
#endif