test ok de l'IUT GEII NICE

Dependencies:   mbed LIDARLite_v3HP_IUT_GEII

main.cpp

Committer:
vermaelen
Date:
2022-02-09
Revision:
0:854ff036e18c

File content as of revision 0:854ff036e18c:

#include "mbed.h"
#include "LIDARLite_v3HP.h"
DigitalOut myled(LED1);
I2C i2c(p9,p10);
LIDARLite_v3HP capteur(&i2c);
int main()
{


//   capteur.configure(2,0x62);
    while(1) {
        capteur.takeRange();
        //capteur.waitForBusy();
        uint16_t val=capteur.readDistance();
        printf("d=%dcm\n\r",val);
        wait(0.1);
    }
}



//le main qui fonctionne sans bibliothèque

/*
int main(){
 char wait;
 char start[2]={0,4};
  char reset[2]={0,0};
 char read=1;
 char read_measureh=0xf;
  char read_measurel=0x10;
 char measureh,measurel;
 char measure[2];
  i2c.write(0xC4,reset,2); //juste pour RESET le circuit , pas obligé
    while(1){
       i2c.write(0xC4,start,2); //on lance la mesure
              wait_us(100);
                            i2c.write(0xC4,&read,1); // on attend la réponse
       do{

       int rep=i2c.read(0xC4,&wait,1);
       if(rep==1)
            printf("c'est le bordel\n\r");
       else
            //printf("wait=%x\n\r",wait);
            putchar('.'); // pour voir le nombre de wait
       }while((wait&1)!=0);
       //on récup la mesure, obligé de faire la mesure octet par octet ????
        i2c.write(0xC4,&read_measureh,1);
        i2c.read(0xC4,&measureh,1);
        i2c.write(0xC4,&read_measurel,1);
        i2c.read(0xC4,&measurel,1);
       int value=(measureh<<8)+measurel;
       printf("%x %x :val=%d cm\n\r",measureh,measurel,value);

       //ne fonctionne pas si on fait la mesure sur 2 octets, pas d'auto-incrément ?????
       //i2c.write(0xC4,&read_measureh,1);
       //i2c.read(0xC4,measure,2);
       //int value=(measure[0]<<8)+measure[1];
       //printf("%x %x :val=%d cm\n\r",measure[0],measure[1],value);
       wait_ms(50);

    }
}*/