Browse Source

Fonctions associées au GPIO écrites

Marino Benassai 3 years ago
parent
commit
db0406a4f5
6 changed files with 208 additions and 143 deletions
  1. 19
    2
      MyDrivers/GPIO.c
  2. 11
    2
      MyDrivers/GPIO.h
  3. 39
    28
      MyDrivers/Timer.c
  4. 53
    24
      MyDrivers/Timer.h
  5. 68
    69
      Services/Chrono.c
  6. 18
    18
      Services/Chrono.h

+ 19
- 2
MyDrivers/GPIO.c View File

@@ -11,8 +11,25 @@ void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outp
11 11
 	else if (GPIOx == GPIOC) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOC);
12 12
 	else if (GPIOx == GPIOD) LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOD);
13 13
 	
14
-	//Configuration de la PIN
14
+	//Configuration du PIN
15 15
 	LL_GPIO_StructInit(&init);
16 16
 	init.Pin = PINx;
17
+	init.Mode = mode;
18
+	//init.Speed = ;
19
+	init.OutputType = outputType;
20
+	init.Pull = pullMode;
21
+	LL_GPIO_Init(GPIOx, &init);
22
+}
23
+
24
+void GPIO_setPin(GPIO_TypeDef * GPIOx, uint32_t PINx, int output){
25
+	
26
+	if (output) LL_GPIO_SetOutputPin(GPIOx, PINx);
27
+	else LL_GPIO_ResetOutputPin(GPIOx,PINx);
28
+	
29
+};
30
+
31
+int GPIO_readPin(GPIO_TypeDef * GPIOx, uint32_t PINx){
32
+	
33
+	return LL_GPIO_IsOutputPinSet(GPIOx, PINx);
17 34
 	
18
-}
35
+}

+ 11
- 2
MyDrivers/GPIO.h View File

@@ -5,10 +5,19 @@
5 5
 #include "stm32f1xx_ll_gpio.h"
6 6
 #include "stm32f1xx_ll_bus.h"
7 7
 
8
+
9
+/**
10
+	* @brief  Configure le GPIO considéré
11
+	* @note   
12
+	* @param  GPIO_TypeDef * GPIOx indique le GPIO à configurer : GPIOA, GPIOB, GPIOC ou GPIOD
13
+	uint32_t PINx indique le PIN à configurer, sous la forme LL_GPIO_PIN_x
14
+	Pour une liste des modes disponibles, consulter la librairie LL
15
+	* @retval None
16
+	*/
8 17
 void GPIO_conf(GPIO_TypeDef * GPIOx, uint32_t PINx, uint32_t mode, uint32_t outputType, uint32_t pullMode);
9 18
 
10
-void GPIO_setPin(GPIO_TypeDef GPIOx, uint32_t PINx, int output);
19
+void GPIO_setPin(GPIO_TypeDef * GPIOx, uint32_t PINx, int output);
11 20
 
12
-void GPIO_readPin(GPIO_TypeDef GPIOx, uint32_t PINx);
21
+int GPIO_readPin(GPIO_TypeDef * GPIOx, uint32_t PINx);
13 22
 
14 23
 #endif

+ 39
- 28
MyDrivers/Timer.c View File

@@ -4,7 +4,7 @@
4 4
 
5 5
 
6 6
 /****************************************************************************
7
-  *																	INTERRUPTIONS
7
+	*																	INTERRUPTIONS
8 8
 	***************************************************************************/
9 9
 
10 10
 
@@ -47,10 +47,10 @@ void TIM4_IRQHandler(void)
47 47
 
48 48
 /**
49 49
 	* @brief  Autorise les interruptions
50
-  * @note   
50
+	* @note   
51 51
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
52
-  * @retval None
53
-  */
52
+	* @retval None
53
+	*/
54 54
 void Timer_IT_enable(TIM_TypeDef * timer)
55 55
 {
56 56
 	LL_TIM_EnableIT_UPDATE(timer);
@@ -59,10 +59,10 @@ void Timer_IT_enable(TIM_TypeDef * timer)
59 59
 
60 60
 /**
61 61
 	* @brief  Interdit les interruptions
62
-  * @note   
62
+	* @note   
63 63
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
64
-  * @retval None
65
-  */
64
+	* @retval None
65
+	*/
66 66
 void Timer_IT_disable(TIM_TypeDef * timer)
67 67
 {
68 68
 	LL_TIM_DisableIT_UPDATE(timer); 
@@ -70,12 +70,12 @@ void Timer_IT_disable(TIM_TypeDef * timer)
70 70
 
71 71
 /**
72 72
 	* @brief  Configure le Timer considéré en interruption sur débordement.
73
-  * @note   A ce stade, les interruptions ne sont pas validés (voir  MyTimer_IT_Enable )
73
+	* @note   A ce stade, les interruptions ne sont pas validés (voir  MyTimer_IT_Enable )
74 74
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
75 75
 	* 				void (*IT_function) (void) : nom (adresse) de la fonction à lancer sur interruption
76 76
 	*         int Prio : priorité associée à l'interruption
77
-  * @retval None
78
-  */
77
+	* @retval None
78
+	*/
79 79
 void Timer_IT_conf(TIM_TypeDef * timer, void (*it_callback) (void), int prio)
80 80
 {
81 81
 	// affectation de la fonction
@@ -103,15 +103,15 @@ void Timer_IT_conf(TIM_TypeDef * timer, void (*it_callback) (void), int prio)
103 103
 }
104 104
 
105 105
 /****************************************************************************
106
-  *																	TIMER
106
+	*																	TIMER
107 107
 	***************************************************************************/
108 108
 
109 109
 /**
110 110
 	* @brief  Démarre le timer considéré et active les interruptions
111
-  * @note   
111
+	* @note   
112 112
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
113
-  * @retval None
114
-  */
113
+	* @retval None
114
+	*/
115 115
 void Timer_start(TIM_TypeDef * timer)
116 116
 {
117 117
 	LL_TIM_EnableCounter(timer);
@@ -119,10 +119,10 @@ void Timer_start(TIM_TypeDef * timer)
119 119
 
120 120
 /**
121 121
 	* @brief  Arrêt le timer considéré  et désactive les interruptions
122
-  * @note   
122
+	* @note   
123 123
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
124
-  * @retval None
125
-  */
124
+	* @retval None
125
+	*/
126 126
 void Timer_stop(TIM_TypeDef * timer)
127 127
 {
128 128
 	LL_TIM_DisableCounter(timer);
@@ -130,12 +130,12 @@ void Timer_stop(TIM_TypeDef * timer)
130 130
 
131 131
 /**
132 132
 	* @brief  Active l'horloge et règle l'ARR et le PSC du timer visé.
133
-  * @note   Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir Timer_start)
133
+	* @note   Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir Timer_start)
134 134
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
135 135
 	* 				int Arr   : valeur à placer dans ARR
136 136
 	*					int Psc   : valeur à placer dans PSC
137
-  * @retval None
138
-  */
137
+	* @retval None
138
+	*/
139 139
 void Timer_conf(TIM_TypeDef * timer, int arr, int psc)
140 140
 {
141 141
 	LL_TIM_InitTypeDef init_struct;
@@ -163,12 +163,12 @@ void Timer_conf(TIM_TypeDef * timer, int arr, int psc)
163 163
 }
164 164
 
165 165
 /****************************************************************************
166
-  *																	PWM INPUT
166
+	*																	PWM INPUT
167 167
 	***************************************************************************/
168 168
 
169 169
 
170 170
 /****************************************************************************
171
-  *																	PWM OUTPUT
171
+	*																	PWM OUTPUT
172 172
 	***************************************************************************/
173 173
 
174 174
 int getArrFromFreq(float freq_khz)
@@ -176,7 +176,7 @@ int getArrFromFreq(float freq_khz)
176 176
 	return (72000 / freq_khz) - 1;
177 177
 }
178 178
 
179
-void PWMo_conf(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle)
179
+void Timer_pwmo_conf(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle)
180 180
 {
181 181
 	const int arr = getArrFromFreq(freq_khz);
182 182
 	Timer_conf(timer, arr, 0);
@@ -190,7 +190,7 @@ void PWMo_conf(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle
190 190
 	LL_TIM_OC_Init(timer, channel, &init_struct);
191 191
 }
192 192
 
193
-void PWMo_setDutyCycle(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle)
193
+void Timer_pwmo_setDutyCycle(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle)
194 194
 {
195 195
 	int compare = dutyCycle * getArrFromFreq(freq_khz);
196 196
 	if (channel == LL_TIM_CHANNEL_CH1) LL_TIM_OC_SetCompareCH1(timer, compare);
@@ -200,15 +200,26 @@ void PWMo_setDutyCycle(TIM_TypeDef * timer, int channel, float freq_khz, float d
200 200
 }
201 201
 
202 202
 /****************************************************************************
203
-  *																ENCODER
203
+	*																ENCODER
204 204
 	***************************************************************************/
205 205
 
206
-void Timer_encoder_conf(TIM_TypeDef * timer, int arr, int psc)
206
+void Timer_encoder_conf(TIM_TypeDef * timer)
207 207
 {
208
+	Timer_conf(timer, 359, 0);
209
+	LL_TIM_ENCODER_InitTypeDef init_struct;
210
+	LL_TIM_ENCODER_StructInit(&init_struct);
208 211
 	
212
+	init_struct.EncoderMode = LL_TIM_ENCODERMODE_X2_TI1;
213
+	
214
+	LL_TIM_ENCODER_Init(timer, &init_struct);
215
+}
216
+
217
+int Timer_encoder_getAngle(TIM_TypeDef * timer)
218
+{
219
+	return LL_TIM_GetCounter(timer);
209 220
 }
210 221
 
211
-int Timer_encoder_get(TIM_TypeDef * timer)
222
+int Timer_encoder_getDirection(TIM_TypeDef * timer)
212 223
 {
213
-	return 0;
224
+	return LL_TIM_GetDirection(timer);
214 225
 }

+ 53
- 24
MyDrivers/Timer.h View File

@@ -4,7 +4,7 @@
4 4
 #include "stm32f103xb.h" 
5 5
 
6 6
 /****************************************************************************
7
-  *																	INTERRUPTIONS
7
+	*																	INTERRUPTIONS
8 8
 	***************************************************************************/
9 9
 
10 10
 void Timer_IT_enable(TIM_TypeDef * timer);
@@ -15,41 +15,41 @@ void Timer_IT_conf(TIM_TypeDef * timer, void (*it_callback) (void), int prio);
15 15
 
16 16
 
17 17
 /****************************************************************************
18
-  *																	TIMER
18
+	*																	TIMER
19 19
 	***************************************************************************/
20 20
 
21 21
 
22 22
 /**
23 23
 	* @brief  Active l'horloge et règle l'ARR et le PSC du timer visé
24
-  * @note   Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
24
+	* @note   Fonction à lancer avant toute autre. Le timer n'est pas encore lancé (voir MyTimerStart)
25 25
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
26 26
 	* 				int Arr   : valeur à placer dans ARR
27 27
 	*					int Psc   : valeur à placer dans PSC
28
-  * @retval None
29
-  */
28
+	* @retval None
29
+	*/
30 30
 void Timer_conf(TIM_TypeDef * timer, int arr, int psc);
31 31
 
32 32
 
33 33
 /**
34 34
 	* @brief  Démarre le timer considéré
35
-  * @note   
35
+	* @note   
36 36
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
37
-  * @retval None
38
-  */
37
+	* @retval None
38
+	*/
39 39
 void Timer_start(TIM_TypeDef * timer);
40 40
 
41 41
 
42 42
 /**
43 43
 	* @brief  Arrêt le timer considéré
44
-  * @note   
44
+	* @note   
45 45
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
46
-  * @retval None
47
-  */
46
+	* @retval None
47
+	*/
48 48
 void Timer_stop(TIM_TypeDef * timer);
49 49
 
50 50
 
51 51
 /****************************************************************************
52
-  *																PWM INPUT
52
+	*																PWM INPUT
53 53
 	***************************************************************************/
54 54
 
55 55
 void PWMi_conf(TIM_TypeDef * timer, int channel);
@@ -57,27 +57,56 @@ void PWMi_conf(TIM_TypeDef * timer, int channel);
57 57
 int PWMi_getDutyCycle(TIM_TypeDef * timer, int channel);
58 58
 
59 59
 /****************************************************************************
60
-  *																PWM OUTPUT
60
+	*																PWM OUTPUT
61 61
 	***************************************************************************/
62 62
 
63
-void PWMo_conf(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle);
63
+/**
64
+	* @brief  Configure le timer en mode PWM output à la fréquence donnée
65
+	* @note   
66
+	* @param  TIM_TypeDef Timer : indique le timer à utiliser : TIM1, TIM2, TIM3 ou TIM4
67
+	*					int channel 			: Le channel utilisé par la PWM
68
+	*					float freq_khz  	: Fréquence en KHz
69
+	*					float dutyCycle 	: Valeur entre 0 et 1
70
+	* @retval None
71
+	*/
72
+void Timer_pwmo_conf(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle);
64 73
 
65 74
 /**
66
-	* @brief  Arrêt le timer considéré
67
-  * @note   
75
+	* @brief  Modifie le duty cycle de la PWM
76
+	* @note   
68 77
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser : TIM1, TIM2, TIM3 ou TIM4
69
-	*					int channel 		: Le channel utilisé par la PWM
70
-	*					float dutyCycle : Valeur entre 0 et 1
71
-  * @retval None
72
-  */
73
-void PWMo_setDutyCycle(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle);
78
+	*					int channel 			: Le channel utilisé par la PWM
79
+	*					float dutyCycle 	: Valeur entre 0 et 1
80
+	* @retval None
81
+	*/
82
+void Timer_pwmo_setDutyCycle(TIM_TypeDef * timer, int channel, float freq_khz, float dutyCycle);
74 83
 
75 84
 /****************************************************************************
76
-  *																ENCODER
85
+	*																ENCODER
77 86
 	***************************************************************************/
78 87
 
79
-void Timer_encoder_conf(TIM_TypeDef * timer, int arr, int psc);
88
+/**
89
+	* @brief  Configure le timer en mode encoder
90
+	* @note   
91
+	* @param  TIM_TypeDef Timer : indique le timer à utiliser : TIM1, TIM2, TIM3 ou TIM4
92
+	* @retval None
93
+	*/
94
+void Timer_encoder_conf(TIM_TypeDef * timer);
95
+
96
+/**
97
+	* @brief  Récupère l'angle, en degrès
98
+	* @note   
99
+	* @param  TIM_TypeDef Timer : indique le timer à utiliser : TIM1, TIM2, TIM3 ou TIM4
100
+	* @retval None
101
+	*/
102
+int Timer_encoder_getAngle(TIM_TypeDef * timer);
80 103
 
81
-int Timer_encoder_get(TIM_TypeDef * timer);
104
+/**
105
+	* @brief  Récupère la direction
106
+	* @note   
107
+	* @param  TIM_TypeDef Timer : indique le timer à utiliser : TIM1, TIM2, TIM3 ou TIM4
108
+	* @retval None
109
+	*/
110
+int Timer_encoder_getDirection(TIM_TypeDef * timer);
82 111
 
83 112
 #endif

+ 68
- 69
Services/Chrono.c View File

@@ -21,110 +21,109 @@ static TIM_TypeDef * Chrono_Timer=TIM1; // init par d
21 21
 void Chrono_Task_10ms(void);
22 22
 
23 23
 /**
24
-	* @brief  Configure le chronomètre. 
25
-  * @note   A lancer avant toute autre fonction.
26
-	* @param  Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
27
-  * @retval None
28
-  */
24
+* @brief  Configure le chronomètre. 
25
+* @note   A lancer avant toute autre fonction.
26
+* @param  Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
27
+* @retval None
28
+*/
29 29
 void Chrono_Conf(TIM_TypeDef * Timer)
30 30
 {
31
-	// Reset Time
32
-	Chrono_Time.Hund = 0;
33
-	Chrono_Time.Sec = 0;
34
-	Chrono_Time.Min = 0;
35
-	
36
-	// Fixation du Timer
37
-	Chrono_Timer = Timer;
38
-
39
-	// Réglage Timer pour un débordement à 10ms
40
-	Timer_conf(Chrono_Timer, 999, 719);
41
-	
42
-	// Réglage des interruptions
43
-	Timer_IT_conf(Chrono_Timer, Chrono_Task_10ms, 3);
44
-	Timer_IT_enable(Chrono_Timer);
31
+// Reset Time
32
+Chrono_Time.Hund = 0;
33
+Chrono_Time.Sec = 0;
34
+Chrono_Time.Min = 0;
35
+
36
+// Fixation du Timer
37
+Chrono_Timer = Timer;
38
+
39
+// Réglage Timer pour un débordement à 10ms
40
+Timer_conf(Chrono_Timer, 999, 719);
41
+
42
+// Réglage des interruptions
43
+Timer_IT_conf(Chrono_Timer, Chrono_Task_10ms, 3);
44
+Timer_IT_enable(Chrono_Timer);
45 45
 }
46 46
 
47 47
 
48 48
 /**
49
-	* @brief  Démarre le chronomètre. 
50
-  * @note   si la durée dépasse 59mn 59sec 99 Hund, elle est remise à zéro et repart
51
-	* @param  Aucun
52
-  * @retval Aucun
53
-  */
49
+* @brief  Démarre le chronomètre. 
50
+* @note   si la durée dépasse 59mn 59sec 99 Hund, elle est remise à zéro et repart
51
+* @param  Aucun
52
+* @retval Aucun
53
+*/
54 54
 void Chrono_Start(void)
55 55
 {
56
-	Timer_start(Chrono_Timer);
56
+Timer_start(Chrono_Timer);
57 57
 }
58 58
 
59 59
 
60 60
 /**
61
-	* @brief  Arrête le chronomètre. 
62
-  * @note   
63
-	* @param  Aucun
64
-  * @retval Aucun
65
-  */
61
+* @brief  Arrête le chronomètre. 
62
+* @note   
63
+* @param  Aucun
64
+* @retval Aucun
65
+*/
66 66
 void Chrono_Stop(void)
67 67
 {
68
-	Timer_stop(Chrono_Timer);
68
+Timer_stop(Chrono_Timer);
69 69
 }
70 70
 
71 71
 
72 72
 /**
73
-	* @brief  Remet le chronomètre à 0 
74
-  * @note   
75
-	* @param  Aucun
76
-  * @retval Aucun
77
-  */
73
+* @brief  Remet le chronomètre à 0 
74
+* @note   
75
+* @param  Aucun
76
+* @retval Aucun
77
+*/
78 78
 void Chrono_Reset(void)
79 79
 {
80
-  // Arrêt Chrono
81
-	Timer_stop(Chrono_Timer);
80
+// Arrêt Chrono
81
+Timer_stop(Chrono_Timer);
82 82
 
83
-	// Reset Time
84
-	Chrono_Time.Hund=0;
85
-	Chrono_Time.Sec=0;
86
-	Chrono_Time.Min=0;
83
+// Reset Time
84
+Chrono_Time.Hund=0;
85
+Chrono_Time.Sec=0;
86
+Chrono_Time.Min=0;
87 87
 }
88 88
 
89 89
 
90 90
 /**
91
-	* @brief  Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
92
-  * @note   
93
-	* @param  Aucun
94
-  * @retval adresse de la variable Time
95
-  */
91
+* @brief  Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
92
+* @note   
93
+* @param  Aucun
94
+* @retval adresse de la variable Time
95
+*/
96 96
 Time * Chrono_Read(void)
97 97
 {
98
-	return &Chrono_Time;
98
+return &Chrono_Time;
99 99
 }
100 100
 
101 101
 
102 102
 
103 103
 
104 104
 /**
105
-	* @brief  incrémente la variable privée Chron_Time modulo 60mn 
106
-  * @note   
107
-	* @param  Aucun
108
-  * @retval Aucun
109
-  */
105
+* @brief  incrémente la variable privée Chron_Time modulo 60mn 
106
+* @note   
107
+* @param  Aucun
108
+* @retval Aucun
109
+*/
110 110
 void Chrono_Task_10ms(void)
111 111
 { 
112
-	Chrono_Time.Hund++;
113
-	if (Chrono_Time.Hund==100)
114
-	{
115
-		Chrono_Time.Sec++;
116
-		Chrono_Time.Hund=0;
117
-	}
118
-	if (Chrono_Time.Sec==60)
119
-	{
120
-		Chrono_Time.Min++;
121
-		Chrono_Time.Sec=0;
122
-	}
123
-	if (Chrono_Time.Min==60)
124
-	{
125
-		Chrono_Time.Hund=0;
126
-	}
127
-	
112
+Chrono_Time.Hund++;
113
+if (Chrono_Time.Hund==100)
114
+{
115
+Chrono_Time.Sec++;
116
+Chrono_Time.Hund=0;
117
+}
118
+if (Chrono_Time.Sec==60)
119
+{
120
+Chrono_Time.Min++;
121
+Chrono_Time.Sec=0;
122
+}
123
+if (Chrono_Time.Min==60)
124
+{
125
+Chrono_Time.Hund=0;
128 126
 }
129 127
 
128
+}
130 129
 

+ 18
- 18
Services/Chrono.h View File

@@ -30,10 +30,10 @@ Les fonctions qui g
30 30
 
31 31
 /**
32 32
 	* @brief  polle les 3 entrées et gènère les actions à faire
33
-  * @note   Fct à lancer en tâche de fond (non bloquante)
33
+	* @note   Fct à lancer en tâche de fond (non bloquante)
34 34
 	* @param  None 
35
-  * @retval None
36
-  */
35
+	* @retval None
36
+	*/
37 37
 		
38 38
 void Chrono_Background(void);
39 39
 
@@ -55,10 +55,10 @@ typedef struct {
55 55
 
56 56
 /**
57 57
 	* @brief  Configure le chronomètre. 
58
-  * @note   A lancer avant toute autre fonction.
58
+	* @note   A lancer avant toute autre fonction.
59 59
 	* @param  TIM_TypeDef Timer : indique le timer à utiliser par le chronomètre, TIM1, TIM2, TIM3 ou TIM4
60
-  * @retval None
61
-  */
60
+	* @retval None
61
+	*/
62 62
 void Chrono_Conf(TIM_TypeDef * Timer);
63 63
 
64 64
 
@@ -68,37 +68,37 @@ void Chrono_Conf(TIM_TypeDef * Timer);
68 68
 
69 69
 /**
70 70
 	* @brief  Démarre le chronomètre. 
71
-  * @note   si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
71
+	* @note   si la durée dépasse 59mn 59sec 99 cent, elle est remise à zéro et repart
72 72
 	* @param  Aucun
73
-  * @retval Aucun
74
-  */
73
+	* @retval Aucun
74
+	*/
75 75
 void Chrono_Start(void);
76 76
 
77 77
 
78 78
 /**
79 79
 	* @brief  Arrête le chronomètre. 
80
-  * @note   
80
+	* @note   
81 81
 	* @param  Aucun
82
-  * @retval Aucun
83
-  */
82
+	* @retval Aucun
83
+	*/
84 84
 void Chrono_Stop(void);
85 85
 
86 86
 
87 87
 /**
88 88
 	* @brief  Remet le chronomètre à 0 
89
-  * @note   
89
+	* @note   
90 90
 	* @param  Aucun
91
-  * @retval Aucun
92
-  */
91
+	* @retval Aucun
92
+	*/
93 93
 void Chrono_Reset(void);
94 94
 
95 95
 
96 96
 /**
97 97
 	* @brief  Renvoie l'adresse de la variable Time privée gérée dans le module Chrono.c
98
-  * @note   
98
+	* @note   
99 99
 	* @param  Aucun
100
-  * @retval adresse de la variable Time
101
-  */
100
+	* @retval adresse de la variable Time
101
+	*/
102 102
 Time * Chrono_Read(void);
103 103
 
104 104
 

Loading…
Cancel
Save