
Helmotz
Dependencies: mbed
HMC5883L.cpp@0:8d7791a3b914, 2017-05-18 (annotated)
- Committer:
- Cointepas
- Date:
- Thu May 18 10:25:12 2017 +0000
- Revision:
- 0:8d7791a3b914
Programme principal
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Cointepas | 0:8d7791a3b914 | 1 | #include "mbed.h" |
Cointepas | 0:8d7791a3b914 | 2 | #include <Fonction.h> |
Cointepas | 0:8d7791a3b914 | 3 | |
Cointepas | 0:8d7791a3b914 | 4 | Serial pc(USBTX, USBRX); |
Cointepas | 0:8d7791a3b914 | 5 | I2C hmc(p9, p10); //je déclare mon maitre connécté à des pins spécifique SCL et SDA |
Cointepas | 0:8d7791a3b914 | 6 | const int addr = 0x3C; // adresse d'écriture de ma sonde |
Cointepas | 0:8d7791a3b914 | 7 | char config_hmc[2]; |
Cointepas | 0:8d7791a3b914 | 8 | char readhmc[6]; |
Cointepas | 0:8d7791a3b914 | 9 | float Bx, By, Bz; |
Cointepas | 0:8d7791a3b914 | 10 | |
Cointepas | 0:8d7791a3b914 | 11 | using namespace std; |
Cointepas | 0:8d7791a3b914 | 12 | |
Cointepas | 0:8d7791a3b914 | 13 | |
Cointepas | 0:8d7791a3b914 | 14 | void HMC5883L() |
Cointepas | 0:8d7791a3b914 | 15 | { |
Cointepas | 0:8d7791a3b914 | 16 | int i = 1; |
Cointepas | 0:8d7791a3b914 | 17 | int a = 0; |
Cointepas | 0:8d7791a3b914 | 18 | config_hmc[0]=0x00; |
Cointepas | 0:8d7791a3b914 | 19 | config_hmc[1]=0x70; |
Cointepas | 0:8d7791a3b914 | 20 | hmc.write(addr, config_hmc,2); |
Cointepas | 0:8d7791a3b914 | 21 | |
Cointepas | 0:8d7791a3b914 | 22 | config_hmc[0]=0x01; |
Cointepas | 0:8d7791a3b914 | 23 | config_hmc[1]=0xA0; |
Cointepas | 0:8d7791a3b914 | 24 | hmc.write(addr, config_hmc,2); |
Cointepas | 0:8d7791a3b914 | 25 | |
Cointepas | 0:8d7791a3b914 | 26 | config_hmc[0]=0x02; |
Cointepas | 0:8d7791a3b914 | 27 | config_hmc[1]=0x01; |
Cointepas | 0:8d7791a3b914 | 28 | hmc.write(addr, config_hmc,2); |
Cointepas | 0:8d7791a3b914 | 29 | |
Cointepas | 0:8d7791a3b914 | 30 | wait(0.006); |
Cointepas | 0:8d7791a3b914 | 31 | do{ |
Cointepas | 0:8d7791a3b914 | 32 | // while(ack!=0){ |
Cointepas | 0:8d7791a3b914 | 33 | hmc.read(addr, readhmc, 6); |
Cointepas | 0:8d7791a3b914 | 34 | |
Cointepas | 0:8d7791a3b914 | 35 | /*readhmc[0]=0x03; |
Cointepas | 0:8d7791a3b914 | 36 | hmc.write(addr, readhmc, 1);*/ |
Cointepas | 0:8d7791a3b914 | 37 | |
Cointepas | 0:8d7791a3b914 | 38 | Bx=((readhmc[0] << 8)|readhmc[1]); |
Cointepas | 0:8d7791a3b914 | 39 | By=((readhmc[2] << 8)|readhmc[3]); |
Cointepas | 0:8d7791a3b914 | 40 | Bz=((readhmc[4] << 8)|readhmc[5]); |
Cointepas | 0:8d7791a3b914 | 41 | |
Cointepas | 0:8d7791a3b914 | 42 | pc.printf("\nBx=%f, By=%f, Bz=%f\n",Bx,By,Bz); |
Cointepas | 0:8d7791a3b914 | 43 | hmc.stop(); |
Cointepas | 0:8d7791a3b914 | 44 | wait(0.7); |
Cointepas | 0:8d7791a3b914 | 45 | a++; |
Cointepas | 0:8d7791a3b914 | 46 | i = 0; |
Cointepas | 0:8d7791a3b914 | 47 | wait(5);}while(a < 1); |
Cointepas | 0:8d7791a3b914 | 48 | |
Cointepas | 0:8d7791a3b914 | 49 | // } |
Cointepas | 0:8d7791a3b914 | 50 | } |