hautot hautot
/
carte_mesure
CNA ltc1655 et adg715
Diff: main.cpp
- Revision:
- 0:fbc63633ebee
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jun 10 07:20:17 2015 +0000 @@ -0,0 +1,132 @@ +#include "mbed.h" +DigitalOut myled(LED1); +I2C i2c(p9, p10); +AnalogIn ina(p15); +SPI cna(p5, p6, p7); // mosi, miso, sclk +DigitalOut cs(p25); +Serial pc(USBTX, USBRX); +Ticker timer; // timer 1 seconde pour mesure +DigitalOut led1(LED1); +DigitalOut led2(LED2); +short num_capt; // numéro de cateur en cours de mesure +unsigned int val_capt1,val_capt2,val_capt3,val_capt4,val_capt5,val_capt6,val_capt7,val_capt8; // valeurs des differents capteurs +unsigned int val_ref_capt1,val_ref_capt2,val_ref_capt3,val_ref_capt4,val_ref_capt5,val_ref_capt6,val_ref_capt7,val_ref_capt8; // valeurs des differents capteurs lorsque le ponr est à l'équilibre + +#include "cherche_tension.h" +#include "cherche_equilibre.h" +#include "branche_capt.h" + +bool mesure; + +void attime() +{ + mesure=true; +} + + + +int main() +{ + mesure=false; // boolean de mesure, passera à true toutes les secondes (timer) + branche_capteur(1); + cna.format(16,0); // passe la spi en mode 16 bits + cs=1; + unsigned long int valcna; + unsigned int valnum; + valcna=0; + wait(0.5); + cs=0; + cna.write(valcna); + cs=1; + // pc.printf("Mesure de l'equilibre des jauges... \n\r"); + // val_ref_capt1=cherche_equilibre(1); + wait(0.1); + // val_ref_capt1=cherche_equilibre(1); + // pc.printf("Equilibre capteur 1= %U \n\r",val_ref_capt1); + //val_ref_capt2=cherche_equilibre(2); + //pc.printf("Equilibre capteur 2= %U \n\r",val_ref_capt2); + // faire pour les 9 capteurs + unsigned int val; + valnum =10500; + cna.write(valnum); + wait(1); +// timer.attach(&attime, 15); // création d'un timer une secon pour activer la poursuite et mesure + // while(1) { + // valcna==cherche_equilibre(1); + + // pc.printf("Resultat numerique capteur1: %U\r\n",valcna); // valeur lue cna sur capteur + + // valnum =0000; + // cna.write(valnum); + + + + cherche_equilibre(10500); + + /* + valnum =12000; + cna.write(valnum); + wait_us(1000); + while (ina.read()>=0.5) { + //myled = 1; + valnum ++; + cs=0; + // pc.printf("%U \n\r",ina.read()); + cna.write(valnum); + wait_ms(10); + cs=1; + } + val=ina.read_u16()-27070; + */ +DigitalOut a(p5); +DigitalOut b(p7); + a=0; + b=0; + pc.printf("Equilibre capteur 1= %U %U \n\r",valnum,val); + wait(1); + // pc.printf("Deformation: %d\r\n",val_ref_capt1-valcna); + // wait(5); + + // valcna=cherche_tension(2); + // pc.printf("Resultat numerique capteur2: %d\r\n",val_ref_capt2-valcna); + // led2=!led2; + + + float result; + + while(true) + { + val=0; + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + val=val+ina.read_u16(); + wait(0.1); + result=val/10; + val=result; + + pc.printf("Val_CAN %U \n\r",val); + } + // } +// pc.printf("Val_CAN %f \n\r",val); +} + + + + +