CNA ltc1655 et adg715

Dependencies:   mbed

main.cpp

Committer:
denishautot
Date:
2015-06-10
Revision:
0:fbc63633ebee

File content as of revision 0:fbc63633ebee:

#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);
}