modm API documentation
modm::hmc5843< I2cMaster > Class Template Reference

#include <modm/driver/inertial/hmc5843.hpp>

Inheritance diagram for modm::hmc5843< I2cMaster >:
modm::Hmc58x3< I2cMaster > modm::I2cDevice< I2cMaster >

Public Types

enum  Gain : uint8_t {
  Ga0_7 = 0, Ga1_0 = int(ConfigB::GN0), Ga1_5 = int(ConfigB::GN1), Ga2_0 = int(ConfigB::GN1) | int(ConfigB::GN0),
  Ga3_2 = int(ConfigB::GN2), Ga3_8 = int(ConfigB::GN2) | int(ConfigB::GN0), Ga4_5 = int(ConfigB::GN2) | int(ConfigB::GN1), Ga6_5 = int(ConfigB::GN2) | int(ConfigB::GN1) | int(ConfigB::GN0)
}
 
enum  MeasurementRate : uint8_t {
  Hz0_5 = 0, Hz1 = int(ConfigA::DO0), Hz2 = int(ConfigA::DO1), Hz5 = int(ConfigA::DO1) | int(ConfigA::DO0),
  Hz10 = int(ConfigA::DO2), Hz20 = int(ConfigA::DO2) | int(ConfigA::DO0), Hz50 = int(ConfigA::DO2) | int(ConfigA::DO1)
}
 
enum  ConfigA : uint8_t
 Configuration Register A.
 
enum  ConfigB : uint8_t
 Configuration Register B.
 
enum  Mode : uint8_t
 Mode Register.
 
enum  OperationMode : uint8_t
 Operation modes.
 
enum  Status : uint8_t
 Status Register.
 

Public Member Functions

 Hmc5843 (Data &data, uint8_t address=0x1e)
 Constructor, requires a hmc58x3::Data object, sets address to default of 0x1e.
 
bool configure (MeasurementRate rate=MeasurementRate::Hz10, Gain gain=Gain::Ga1_0)
 
bool setMeasurementRate (MeasurementRate rate)
 
bool setGain (Gain gain)
 
 MODM_FLAGS8 (ConfigA)
 
 MODM_FLAGS8 (ConfigB)
 
 MODM_FLAGS8 (Mode)
 
 MODM_FLAGS8 (Status)
 
void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
DatagetData ()
 Get the data object for this sensor.
 
Status_t getStatus ()
 
bool ping ()
 
bool read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
bool readMagneticField ()
 
bool readStatus ()
 
void setAddress (uint8_t address)
 
bool setOperationMode (OperationMode mode)
 
bool write (const uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
bool writeRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Starts a write-read transaction and waits until finished.
 

Protected Member Functions

ConfigA_t getConfigA ()
 
ConfigB_t getConfigB ()
 
Mode_t getMode ()
 
bool isTransactionRunning ()
 
bool runTransaction ()
 Starts our own transaction and waits until finished.
 
bool startTransaction ()
 Starts the transaction with our own transaction object.
 
bool startTransaction (modm::I2cTransaction *transaction)
 Starts the transaction with a separate transaction object.
 
bool updateConfigA (ConfigA_t setMask, ConfigA_t clearMask=ConfigA_t (0x7f))
 
bool updateConfigB (ConfigB_t setMask, ConfigB_t clearMask=ConfigB_t (0xe0))
 
bool updateMode (Mode_t setMask, Mode_t clearMask=Mode::MD_Mask)
 
bool wasTransactionSuccessful ()
 

Protected Attributes

I2cWriteReadTransaction transaction
 

Detailed Description

template<typename I2cMaster>
class modm::hmc5843< I2cMaster >

HMC5843 digital compass driver.

This class extends the Hmc58x3 family driver only by the addition of device specific Register bit masks.

For further information on this device consult the datasheet.

See also
Hmc58x3
Author
Niklas Hauser

Member Function Documentation

void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::attachConfigurationHandler ( I2c::ConfigurationHandler  handler)
inheritedinline

Attaches a configuration handler, which is called before a transaction, whenever the configuration has to be changed.

bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::isTransactionRunning ( )
inheritedinlineprotected
Returns
true when transaction is busy.
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::ping ( )
inheritedinline
Return Values
truedevice responds to address
falseno device with address found
void modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::setAddress ( uint8_t  address)
inheritedinline

Sets a new address of the slave device.

Parameters
addressthe slave address not yet shifted left (address < 128).
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::wasTransactionSuccessful ( )
inheritedinlineprotected
Returns
true when transaction did not return an error.

The documentation for this class was generated from the following file: