test

Files at this revision

API Documentation at this revision

Comitter:
nk_ralph
Date:
Tue Jun 08 08:22:16 2021 +0000
Commit message:
test

Changed in this revision

ltc2309.cpp Show annotated file Show diff for this revision Revisions of this file
ltc2309.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 54613210d97a ltc2309.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ltc2309.cpp	Tue Jun 08 08:22:16 2021 +0000
@@ -0,0 +1,48 @@
+#include "mbed.h"
+#include "ltc2309.h"
+
+    volatile unsigned int IKPa0[8];
+
+
+I2C LTC2309(PB_9,PB_8);
+
+// rem S/D O/S S1 S0 UNI SLP  tableau de config pour les 8 entrées
+volatile char LTC2309config[] = {0b10001000,0b11001000,0b10011000,0b11011000,0b10101000,0b11101000,0b10111000,0b11111000};
+// calcul pression a partir de autozero
+float pression(unsigned int IKPa, unsigned int IKPa_0)
+{
+    float IKPai = IKPa;       // AutoZéro
+    float IKPa_0i = IKPa_0;   // Pression lue en temps réél 
+    return (IKPai-IKPa_0i);   // AutoZéro - Pression lue en temps réél = Valeur en Pascal
+    }
+
+// Pour recuperer la valeur de la première case LTC2309config[0];
+void LTC2309Init(void)
+{
+    LTC2309.frequency(LTC2309Frequence);
+}
+void LTC2309Autozero(void)
+{
+    // mesure a vide soufflerie arretee    
+    IKPa0[0] = LTC2309read(CH0c);       // AutoZéro de l'entrée 0
+    IKPa0[1] = LTC2309read(CH1c);       // AutoZéro de l'entrée 1
+    IKPa0[2] = LTC2309read(CH2c);       // AutoZéro de l'entrée 2
+    IKPa0[3] = LTC2309read(CH3c);       // AutoZéro de l'entrée 3
+    IKPa0[4] = LTC2309read(CH4c);       // AutoZéro de l'entrée 4
+    IKPa0[5] = LTC2309read(CH5c);       // AutoZéro de l'entrée 5
+    IKPa0[6] = LTC2309read(CH6c);       // AutoZéro de l'entrée 6
+    IKPa0[7] = LTC2309read(CH7c);       // AutoZéro de l'entrée 7
+    }
+// entree 0 a 7....
+float LTC2309read(unsigned NumEntree)
+{
+    LTC2309.start();
+    LTC2309.write(LTC2309Adresse); // adresse + r/w = 0 en lecture
+    LTC2309.write(LTC2309config[NumEntree]); // mot de config de l'entre
+    LTC2309.stop();
+    LTC2309.start();
+    LTC2309.write((LTC2309Adresse+1)); // r/w a 1 pour lectur
+    unsigned a = LTC2309.read(1) * 16 + LTC2309.read(1)/16; // decale a droite de 4 bit.
+    LTC2309.stop();
+    return pression(a,IKPa0[NumEntree]);
+}
\ No newline at end of file
diff -r 000000000000 -r 54613210d97a ltc2309.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ltc2309.h	Tue Jun 08 08:22:16 2021 +0000
@@ -0,0 +1,20 @@
+#ifndef ltc2309_H
+#define ltc2309_H
+
+#define LTC2309Adresse 0x10  // adresse 0b00010000 adresse decalé à gauche d'1 bit pour laisser la place a r/W
+#define LTC2309Frequence 200000  // 200k pour les tests
+
+    #define CH0c  0
+    #define CH1c  1
+    #define CH2c  2
+    #define CH3c  3
+    #define CH4c  4
+    #define CH5c  5
+    #define CH6c  6
+    #define CH7c  7
+
+void LTC2309Init(void);
+float LTC2309read(unsigned NumEntree);
+void LTC2309Autozero(void);
+
+#endif
\ No newline at end of file