Code APP6

Dependencies:   mbed mbed-rtos

Files at this revision

API Documentation at this revision

Comitter:
GaiSensei
Date:
Tue Apr 04 19:55:17 2017 +0000
Parent:
0:4101acb9ab42
Commit message:
GG

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Apr 04 16:28:49 2017 +0000
+++ b/main.cpp	Tue Apr 04 19:55:17 2017 +0000
@@ -1,9 +1,24 @@
+/////////////////////////////////////////////////////////////
+// APP 6: Propriétés des matériaux et capteurs             //
+//                                                         //
+// Université de Sherbrooke                                //
+// Génie informatique                                      //
+// Session 5, Hiver 2017                                   //
+//                                                         //
+// Date:    5 avril 2017                                   //
+//                                                         //
+// Auteurs: Maxime Dupuis,       dupm2216                  //
+//          Bruno Allaire-Lemay, allb2701                  //
+/////////////////////////////////////////////////////////////
+
 #include "mbed.h"
+#include "rtos.h"
 #include <cmath>
-
+    
 const float coefficients[6] = {4.7378, -9.0288, 14.136, -10.126, 3.2801, -0.3927};
 AnalogIn input(p15);
 
+//Lit la tension sur la pin 15 et effectue la conversion analogue à digitale sur 16 bits. Retourne la tension lue en volts.
 float read_voltage()
 {
     const float ratio = 19859.4;
@@ -11,6 +26,7 @@
     return voltage / ratio;
 }
 
+//Calcul le niveau du liquide à partir des coefficients de la courbe de régression et de la tension lue.
 float get_liquid_level_cm(const float* coefficients, const int number_of_coefficients, const float hall_sensor_voltage)
 {
     float liquid_level_cm = 54;
@@ -21,16 +37,23 @@
     return liquid_level_cm;
 }
 
-int main()
+//Appel les fonctions de lecture et de calcul du niveau. Affiche le niveau.
+void read_and_display_level_cm(void const *args)
 {
     float voltage;
     float liquid_level_cm;
+    voltage = read_voltage();
+    liquid_level_cm = get_liquid_level_cm(coefficients, 6, voltage);
+    printf("Niveau du liquide (cm) : %f\r\n", liquid_level_cm);
+}
+
+//Lit, calcul et affiche le niveau du liquide à toutes les 50 millisecondes.
+int main()
+{
+    RtosTimer timer(read_and_display_level_cm, osTimerPeriodic);
+    timer.start(50);
     
     while(1)
     {
-        voltage = read_voltage();
-        liquid_level_cm = get_liquid_level_cm(coefficients, 6, voltage);
-        
-        printf("Niveau du liquide (cm) : %f\r\n", liquid_level_cm);
     }
-}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Tue Apr 04 19:55:17 2017 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed-rtos/#58563e6cba1e