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

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

Inheritance diagram for modm::Hmc6343< I2cMaster >:
modm::I2cDevice< I2cMaster, 2 > modm::NestedResumable< 10+1 >

Classes

struct  Data
 

Public Types

enum  Register : uint8_t
 
enum  Register16 : uint8_t
 
enum  Orientation : uint8_t
 
enum  OperationMode : uint8_t
 
enum  MeasurementRate : uint8_t
 

Public Member Functions

 MODM_FLAGS8 (OperationMode)
 
 Hmc6343 (Data &data, uint8_t address=0x19)
 Constructor, requires a hmc6343::Data object, sets address to default of 0x19.
 
modm::ResumableResult< bool > readOperationMode ()
 read operation mode register 2
 
modm::ResumableResult< bool > setMeasurementRate (MeasurementRate measurementRate=MeasurementRate::Hz10)
 Configures the sensor to normal orientation mode with 10Hz data rate.
 
modm::ResumableResult< bool > setDeviationAngle (int16_t angle)
 sets a new deviation angle in eeprom
 
modm::ResumableResult< bool > setVariationAngle (int16_t angle)
 sets a new variation angle in eeprom
 
modm::ResumableResult< bool > setIIR_Filter (uint8_t filter)
 sets a new IIR filter in eeprom
 
modm::ResumableResult< bool > getDeviceId (uint16_t &value)
 reads the device id from eeprom
 
modm::ResumableResult< bool > getIIR_Filter (uint8_t &value)
 sets a new IIR filter in eeprom
 
modm::ResumableResult< bool > setOrientation (Orientation orientation)
 Sets the specified orientation.
 
modm::ResumableResult< bool > enterRunMode ()
 enters run mode
 
modm::ResumableResult< bool > enterStandbyMode ()
 enters standby mode
 
modm::ResumableResult< bool > enterSleepMode ()
 enters sleep mode
 
modm::ResumableResult< bool > exitSleepMode ()
 exit sleep mode
 
modm::ResumableResult< bool > enterUserCalibrationMode ()
 enters user calibration mode
 
modm::ResumableResult< bool > exitUserCalibrationMode ()
 exit user calibration mode
 
modm::ResumableResult< bool > resetProcessor ()
 resets the processor, any new command is delayed by 500ms
 
modm::ResumableResult< bool > readAcceleration ()
 reads the Acceleration registers and buffer the results
 
modm::ResumableResult< bool > readMagneticField ()
 reads the Magnetometer registers and buffer the results
 
modm::ResumableResult< bool > readHeading ()
 reads the Heading registers and buffer the results
 
modm::ResumableResult< bool > readTilt ()
 reads the Tilt registers and buffer the results
 
DatagetData ()
 Get the data object for this sensor.
 
void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
modm::ResumableResult< bool > ping ()
 
void setAddress (uint8_t address)
 

Protected Member Functions

modm::ResumableResult< ReturnType > resumable function (...)
 
int8_t getResumableDepth () const
 
bool isResumableRunning () const
 
bool isTransactionRunning ()
 
modm::ResumableResult< bool > runTransaction ()
 Starts our own transaction and waits until finished.
 
bool startRead (uint8_t *buffer, std::size_t size)
 Configures the transaction with a read operation and starts it.
 
bool startTransaction ()
 Starts the transaction with our own transaction object.
 
bool startTransaction (modm::I2cTransaction *transaction)
 Starts the transaction with a seperate transaction object.
 
bool startWrite (const uint8_t *buffer, std::size_t size)
 Configures the transaction with a write operation and starts it.
 
bool startWriteRead (const uint8_t *writeBuffer, std::size_t writeSize, uint8_t *readBuffer, std::size_t readSize)
 Configures the transaction with a write/read operation and starts it.
 
void stopResumable ()
 Force all resumable functions to stop running at the current nesting level.
 
bool wasTransactionSuccessful ()
 
modm::ResumableResult< bool > writeRegister (Register reg, uint8_t value)
 write a 8bit value into the eeprom More...
 
modm::ResumableResult< bool > writeRegister (Register16 reg, uint16_t value)
 write a 16bit value into the eeprom
 
modm::ResumableResult< bool > readRegister (Register reg, uint8_t &value)
 read a 8bit value from the eeprom
 
modm::ResumableResult< bool > readRegister (Register16 reg, uint16_t &value)
 read a 16bit value from the eeprom
 

Protected Attributes

I2cWriteReadTransaction transaction
 

Detailed Description

template<class I2cMaster>
class modm::Hmc6343< I2cMaster >

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.

modm::ResumableResult< ReturnType > resumable modm::NestedResumable< 1 >::function (   ...)
inherited

Run the resumable function.

You need to implement this method in you subclass yourself.

Returns
>NestingError if still running, <=NestingError if it has finished.
int8_t modm::NestedResumable< 1 >::getResumableDepth ( ) const
inheritedinline
Returns
the nesting depth in the current resumable function, or -1 if called outside any resumable function
bool modm::NestedResumable< 1 >::isResumableRunning ( ) const
inheritedinline
Returns
true if a resumable function is running at the current nesting level, else false
bool modm::I2cDevice< I2cMaster, 10 , I2cWriteReadTransaction >::isTransactionRunning ( )
inheritedinlineprotected
Returns
true when transaction is busy.
modm::ResumableResult<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.
template<class I2cMaster >
modm::ResumableResult<bool> modm::Hmc6343< I2cMaster >::writeRegister ( Register  reg,
uint8_t  value 
)
protected

write a 8bit value into the eeprom

Use these methods with caution!


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