
Helmotz
Dependencies: mbed
Diff: HMC5883L.cpp
- Revision:
- 0:8d7791a3b914
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HMC5883L.cpp Thu May 18 10:25:12 2017 +0000 @@ -0,0 +1,50 @@ +#include "mbed.h" +#include <Fonction.h> + +Serial pc(USBTX, USBRX); +I2C hmc(p9, p10); //je déclare mon maitre connécté à des pins spécifique SCL et SDA +const int addr = 0x3C; // adresse d'écriture de ma sonde +char config_hmc[2]; +char readhmc[6]; +float Bx, By, Bz; + +using namespace std; + + +void HMC5883L() +{ + int i = 1; + int a = 0; + config_hmc[0]=0x00; + config_hmc[1]=0x70; + hmc.write(addr, config_hmc,2); + + config_hmc[0]=0x01; + config_hmc[1]=0xA0; + hmc.write(addr, config_hmc,2); + + config_hmc[0]=0x02; + config_hmc[1]=0x01; + hmc.write(addr, config_hmc,2); + + wait(0.006); + do{ + // while(ack!=0){ + hmc.read(addr, readhmc, 6); + + /*readhmc[0]=0x03; + hmc.write(addr, readhmc, 1);*/ + + Bx=((readhmc[0] << 8)|readhmc[1]); + By=((readhmc[2] << 8)|readhmc[3]); + Bz=((readhmc[4] << 8)|readhmc[5]); + + pc.printf("\nBx=%f, By=%f, Bz=%f\n",Bx,By,Bz); + hmc.stop(); + wait(0.7); + a++; + i = 0; + wait(5);}while(a < 1); + + // } +}