d

Fork of HMC5883L by GM AT

Committer:
fadi_lad
Date:
Sun Feb 05 23:07:34 2017 +0000
Revision:
1:17f3539e91b0
Parent:
0:cad18db1e431
V1 bracelet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmatjuara 0:cad18db1e431 1 #ifndef HMC5883L_H
gmatjuara 0:cad18db1e431 2 #define HMC5883L_H
gmatjuara 0:cad18db1e431 3
gmatjuara 0:cad18db1e431 4 #include "mbed.h"
gmatjuara 0:cad18db1e431 5
fadi_lad 1:17f3539e91b0 6 #define HMC5883L_IDENT_A 0x0A // In this case the identification register A is used to identify the devide. ASCII value H
fadi_lad 1:17f3539e91b0 7 #define HMC5883L_I2C 0x1E // 7-bit address. 0x3C write, 0x3D read.
fadi_lad 1:17f3539e91b0 8 #define HMC5883L_I2C_WRITE 0x3C // Same as (& 0xFE), ensure that the MSB bit is being set to zero (RW=0 -> Writing)
fadi_lad 1:17f3539e91b0 9 #define HMC5883L_I2C_READ 0x3D // Same as (| 0x01), ensure that the MSB bit is being set to one (RW=1 -> Reading)
gmatjuara 0:cad18db1e431 10
fadi_lad 1:17f3539e91b0 11 #define HMC5883L_CONFIG_A 0x00
fadi_lad 1:17f3539e91b0 12 #define HMC5883L_CONFIG_B 0x01
fadi_lad 1:17f3539e91b0 13 #define HMC5883L_MODE 0x02
fadi_lad 1:17f3539e91b0 14 #define HMC5883L_STATUS 0x09
gmatjuara 0:cad18db1e431 15
fadi_lad 1:17f3539e91b0 16 #define HMC5883L_X_MSB 0x03
fadi_lad 1:17f3539e91b0 17 #define HMC5883L_X_LSB 0x04
fadi_lad 1:17f3539e91b0 18 #define HMC5883L_Z_MSB 0x05
fadi_lad 1:17f3539e91b0 19 #define HMC5883L_Z_LSB 0x06
fadi_lad 1:17f3539e91b0 20 #define HMC5883L_Y_MSB 0x07
fadi_lad 1:17f3539e91b0 21 #define HMC5883L_Y_LSB 0x08
gmatjuara 0:cad18db1e431 22
gmatjuara 0:cad18db1e431 23
fadi_lad 1:17f3539e91b0 24 class HMC5883L
fadi_lad 1:17f3539e91b0 25 {
gmatjuara 0:cad18db1e431 26
gmatjuara 0:cad18db1e431 27 public:
gmatjuara 0:cad18db1e431 28
gmatjuara 0:cad18db1e431 29 HMC5883L(PinName sda, PinName scl);
fadi_lad 1:17f3539e91b0 30 float getMx();
fadi_lad 1:17f3539e91b0 31 float getMy();
fadi_lad 1:17f3539e91b0 32 float getMz();
fadi_lad 1:17f3539e91b0 33 private:
fadi_lad 1:17f3539e91b0 34 void Write(char reg_address, char data);
fadi_lad 1:17f3539e91b0 35 char Read(char data);
fadi_lad 1:17f3539e91b0 36 void MultiByteRead(char address, char* output, int size);
fadi_lad 1:17f3539e91b0 37 I2C i2c;
gmatjuara 0:cad18db1e431 38
gmatjuara 0:cad18db1e431 39 };
gmatjuara 0:cad18db1e431 40
gmatjuara 0:cad18db1e431 41 #endif /* HMC5883L_H */
fadi_lad 1:17f3539e91b0 42