![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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); } }*/