Example of reading and magnetometer sensor (HMC5883L)
Dependencies: MODSERIAL mbed-rtos mbed
Fork of ReadingMag_HMC5883L by
HMC5883L.h
- Committer:
- Maor_T
- Date:
- 2016-05-24
- Revision:
- 1:aea254b39529
- Parent:
- 0:6bc5f85ca6fa
File content as of revision 1:aea254b39529:
#ifndef HMC5883L_H
#define HMC5883L_H
#include "mbed.h"
#define HMC5883L_IDENT_A 0x0A // In this case the identification register A is used to identify the devide. ASCII value H
#define HMC5883L_I2C 0x1E // 7-bit address. 0x3C write, 0x3D read.
#define HMC5883L_I2C_WRITE 0x3C // Same as (& 0xFE), ensure that the MSB bit is being set to zero (RW=0 -> Writing)
#define HMC5883L_I2C_READ 0x3D // Same as (| 0x01), ensure that the MSB bit is being set to one (RW=1 -> Reading)
#define HMC5883L_CONFIG_A 0x00
#define HMC5883L_CONFIG_B 0x01
#define HMC5883L_MODE 0x02
#define HMC5883L_STATUS 0x09
#define HMC5883L_X_MSB 0x03
#define HMC5883L_X_LSB 0x04
#define HMC5883L_Z_MSB 0x05
#define HMC5883L_Z_LSB 0x06
#define HMC5883L_Y_MSB 0x07
#define HMC5883L_Y_LSB 0x08
class HMC5883L
{
public:
HMC5883L(PinName sda, PinName scl);
float getMx();
float getMy();
float getMz();
void Write(char reg_address, char data);
private:
char Read(char data);
void MultiByteRead(char address, char* output, int size);
I2C i2c;
};
#endif /* HMC5883L_H */
