test
Embed:
(wiki syntax)
Show/hide line numbers
ltc2309.cpp
00001 #include "mbed.h" 00002 #include "ltc2309.h" 00003 00004 volatile unsigned int IKPa0[8]; 00005 00006 00007 I2C LTC2309(PB_9,PB_8); 00008 00009 // rem S/D O/S S1 S0 UNI SLP tableau de config pour les 8 entrées 00010 volatile char LTC2309config[] = {0b10001000,0b11001000,0b10011000,0b11011000,0b10101000,0b11101000,0b10111000,0b11111000}; 00011 // calcul pression a partir de autozero 00012 float pression(unsigned int IKPa, unsigned int IKPa_0) 00013 { 00014 float IKPai = IKPa; // AutoZéro 00015 float IKPa_0i = IKPa_0; // Pression lue en temps réél 00016 return (IKPai-IKPa_0i); // AutoZéro - Pression lue en temps réél = Valeur en Pascal 00017 } 00018 00019 // Pour recuperer la valeur de la première case LTC2309config[0]; 00020 void LTC2309Init(void) 00021 { 00022 LTC2309.frequency(LTC2309Frequence); 00023 } 00024 void LTC2309Autozero(void) 00025 { 00026 // mesure a vide soufflerie arretee 00027 IKPa0[0] = LTC2309read(CH0c); // AutoZéro de l'entrée 0 00028 IKPa0[1] = LTC2309read(CH1c); // AutoZéro de l'entrée 1 00029 IKPa0[2] = LTC2309read(CH2c); // AutoZéro de l'entrée 2 00030 IKPa0[3] = LTC2309read(CH3c); // AutoZéro de l'entrée 3 00031 IKPa0[4] = LTC2309read(CH4c); // AutoZéro de l'entrée 4 00032 IKPa0[5] = LTC2309read(CH5c); // AutoZéro de l'entrée 5 00033 IKPa0[6] = LTC2309read(CH6c); // AutoZéro de l'entrée 6 00034 IKPa0[7] = LTC2309read(CH7c); // AutoZéro de l'entrée 7 00035 } 00036 // entree 0 a 7.... 00037 float LTC2309read(unsigned NumEntree) 00038 { 00039 LTC2309.start(); 00040 LTC2309.write(LTC2309Adresse); // adresse + r/w = 0 en lecture 00041 LTC2309.write(LTC2309config[NumEntree]); // mot de config de l'entre 00042 LTC2309.stop(); 00043 LTC2309.start(); 00044 LTC2309.write((LTC2309Adresse+1)); // r/w a 1 pour lectur 00045 unsigned a = LTC2309.read(1) * 16 + LTC2309.read(1)/16; // decale a droite de 4 bit. 00046 LTC2309.stop(); 00047 return pression(a,IKPa0[NumEntree]); 00048 }
Generated on Thu Aug 18 2022 17:06:21 by 1.7.2