test
ltc2309.cpp@0:54613210d97a, 2021-06-08 (annotated)
- Committer:
- nk_ralph
- Date:
- Tue Jun 08 08:22:16 2021 +0000
- Revision:
- 0:54613210d97a
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nk_ralph | 0:54613210d97a | 1 | #include "mbed.h" |
nk_ralph | 0:54613210d97a | 2 | #include "ltc2309.h" |
nk_ralph | 0:54613210d97a | 3 | |
nk_ralph | 0:54613210d97a | 4 | volatile unsigned int IKPa0[8]; |
nk_ralph | 0:54613210d97a | 5 | |
nk_ralph | 0:54613210d97a | 6 | |
nk_ralph | 0:54613210d97a | 7 | I2C LTC2309(PB_9,PB_8); |
nk_ralph | 0:54613210d97a | 8 | |
nk_ralph | 0:54613210d97a | 9 | // rem S/D O/S S1 S0 UNI SLP tableau de config pour les 8 entrées |
nk_ralph | 0:54613210d97a | 10 | volatile char LTC2309config[] = {0b10001000,0b11001000,0b10011000,0b11011000,0b10101000,0b11101000,0b10111000,0b11111000}; |
nk_ralph | 0:54613210d97a | 11 | // calcul pression a partir de autozero |
nk_ralph | 0:54613210d97a | 12 | float pression(unsigned int IKPa, unsigned int IKPa_0) |
nk_ralph | 0:54613210d97a | 13 | { |
nk_ralph | 0:54613210d97a | 14 | float IKPai = IKPa; // AutoZéro |
nk_ralph | 0:54613210d97a | 15 | float IKPa_0i = IKPa_0; // Pression lue en temps réél |
nk_ralph | 0:54613210d97a | 16 | return (IKPai-IKPa_0i); // AutoZéro - Pression lue en temps réél = Valeur en Pascal |
nk_ralph | 0:54613210d97a | 17 | } |
nk_ralph | 0:54613210d97a | 18 | |
nk_ralph | 0:54613210d97a | 19 | // Pour recuperer la valeur de la première case LTC2309config[0]; |
nk_ralph | 0:54613210d97a | 20 | void LTC2309Init(void) |
nk_ralph | 0:54613210d97a | 21 | { |
nk_ralph | 0:54613210d97a | 22 | LTC2309.frequency(LTC2309Frequence); |
nk_ralph | 0:54613210d97a | 23 | } |
nk_ralph | 0:54613210d97a | 24 | void LTC2309Autozero(void) |
nk_ralph | 0:54613210d97a | 25 | { |
nk_ralph | 0:54613210d97a | 26 | // mesure a vide soufflerie arretee |
nk_ralph | 0:54613210d97a | 27 | IKPa0[0] = LTC2309read(CH0c); // AutoZéro de l'entrée 0 |
nk_ralph | 0:54613210d97a | 28 | IKPa0[1] = LTC2309read(CH1c); // AutoZéro de l'entrée 1 |
nk_ralph | 0:54613210d97a | 29 | IKPa0[2] = LTC2309read(CH2c); // AutoZéro de l'entrée 2 |
nk_ralph | 0:54613210d97a | 30 | IKPa0[3] = LTC2309read(CH3c); // AutoZéro de l'entrée 3 |
nk_ralph | 0:54613210d97a | 31 | IKPa0[4] = LTC2309read(CH4c); // AutoZéro de l'entrée 4 |
nk_ralph | 0:54613210d97a | 32 | IKPa0[5] = LTC2309read(CH5c); // AutoZéro de l'entrée 5 |
nk_ralph | 0:54613210d97a | 33 | IKPa0[6] = LTC2309read(CH6c); // AutoZéro de l'entrée 6 |
nk_ralph | 0:54613210d97a | 34 | IKPa0[7] = LTC2309read(CH7c); // AutoZéro de l'entrée 7 |
nk_ralph | 0:54613210d97a | 35 | } |
nk_ralph | 0:54613210d97a | 36 | // entree 0 a 7.... |
nk_ralph | 0:54613210d97a | 37 | float LTC2309read(unsigned NumEntree) |
nk_ralph | 0:54613210d97a | 38 | { |
nk_ralph | 0:54613210d97a | 39 | LTC2309.start(); |
nk_ralph | 0:54613210d97a | 40 | LTC2309.write(LTC2309Adresse); // adresse + r/w = 0 en lecture |
nk_ralph | 0:54613210d97a | 41 | LTC2309.write(LTC2309config[NumEntree]); // mot de config de l'entre |
nk_ralph | 0:54613210d97a | 42 | LTC2309.stop(); |
nk_ralph | 0:54613210d97a | 43 | LTC2309.start(); |
nk_ralph | 0:54613210d97a | 44 | LTC2309.write((LTC2309Adresse+1)); // r/w a 1 pour lectur |
nk_ralph | 0:54613210d97a | 45 | unsigned a = LTC2309.read(1) * 16 + LTC2309.read(1)/16; // decale a droite de 4 bit. |
nk_ralph | 0:54613210d97a | 46 | LTC2309.stop(); |
nk_ralph | 0:54613210d97a | 47 | return pression(a,IKPa0[NumEntree]); |
nk_ralph | 0:54613210d97a | 48 | } |