TP OS12-MT

Dependencies:   mbed C12832

Files at this revision

API Documentation at this revision

Comitter:
Etudiant_RT9749
Date:
Mon Mar 25 11:39:30 2019 +0000
Commit message:
Test

Changed in this revision

C12832.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 576717be4fce C12832.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/C12832.lib	Mon Mar 25 11:39:30 2019 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/chris/code/C12832/#7de323fa46fe
diff -r 000000000000 -r 576717be4fce main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Mar 25 11:39:30 2019 +0000
@@ -0,0 +1,97 @@
+#include "mbed.h"
+#include "C12832.h"
+
+Ticker Acquisition;
+AnalogOut Out(p18);
+AnalogIn In(p17);
+
+C12832 lcd(p5, p7, p6, p8, p11);
+
+static unsigned char Echant_Ok = 0;
+
+const int C_continu  = 2048;
+
+char buffer_can_logarithmique[100] = {};
+char buffer_in[100] = {};
+char buffer_filtre[100] = {};
+
+//static float a[] = {};
+//static float b[] = {};
+
+static float En[2] = {0,0};
+static float Sn[3] = {0,0,0};
+
+/**
+Taille des variables en memoire :
+    * short int = 2 octets = 8 bits
+    * int = 4 octets = 16 bits
+    * float = 4 octets = 32 bits
+    * double = 8 octect = 256 bits
+**/
+
+
+// Fonction Echantillonnage
+void Echantillonage() {
+  Echant_Ok=1;
+}
+
+double CAN_log_func(int x){
+    double y = 0;
+    
+    if (x > 0 && x <= 32){
+        y = x * 16;
+    } else if (x > 0 && x <= 32){
+        y = x * 8 - 1/8;
+    } else if (x > 32 && x <= 64){
+        y = x * 4 + 1/4;
+    } else if (x > 64 && x <= 128){
+        y = x * 2 + 3/8;
+    } else if (x > 128 && x <= 256){
+        y = x + 1/2;
+    } else if (x > 256 && x <= 512){
+        y = x * 1/2 + 5/8;
+    } else if (x > 512 && x <= 1024){
+        y = x * 1/4 + 3/4;
+    }
+    return y;
+}
+
+float Filtrage(int x){
+    return (0.1*En[0]-0.0897*En[1]+1.55952*Sn[1]-0.6065*Sn[2]);
+}
+
+int main(){
+  // Declanchement de la fonction d'échantillonnage
+  Acquisition.attach_us(&Echantillonage,125);
+  
+  // Boucle infini
+  while (true) {
+    if (Echant_Ok == 1) {
+        // Quantification
+        int entree_uni = In.read_u16();
+        int entree_log = CAN_log_func(entree_uni - C_continu);
+
+        En[1] = En[0];
+        En[0] = entree_log;
+        
+        Sn[2] = Sn[1];
+        Sn[1] = Sn[0];
+        Sn[0] = Filtrage(En[0]);
+        
+        sprintf(buffer_in, "Valeur : %d | %d", entree_uni, (entree_uni - C_continu));
+        sprintf(buffer_can_logarithmique, "Quantification : %d", entree_log);
+        sprintf(buffer_filtre, "En=%d | Sn=%f", entree_log, Filtrage(entree_log));
+        
+        lcd.locate(0,3);
+        lcd.printf(buffer_in);
+        
+        lcd.locate(0,11);
+        lcd.printf(buffer_can_logarithmique);
+        
+        lcd.locate(0,19);
+        lcd.printf(buffer_filtre);
+        
+    }
+    Echant_Ok = 0;
+  }
+}
diff -r 000000000000 -r 576717be4fce mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Mar 25 11:39:30 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file