modm API documentation
Qmc5883l< I2cMaster > Class Template Reference
Inheritance diagram for Qmc5883l< I2cMaster >:
Qmc5883lRegisters modm::I2cDevice< I2cMaster > modm::NestedResumable< 10+1 >

Public Types

enum  Control1 : uint8_t {
  OSR1 = modm::Bit7, OSR0 = modm::Bit6, OversampleRate_Mask = OSR1 | OSR0, RNG1 = modm::Bit5,
  RNG0 = modm::Bit4, FullScale_Mask = RNG1 | RNG0, ODR1 = modm::Bit3, ODR0 = modm::Bit2,
  OutputDataRate_Mask = ODR1 | ODR0, MODE1 = modm::Bit1, MODE0 = modm::Bit0, Mode_Mask = MODE1 | MODE0
}
 
enum  Control2 : uint8_t { SOFT_RST = modm::Bit7, ROL_PNT = modm::Bit6, INT_ENB = modm::Bit0 }
 
enum  FullScale : uint8_t { _2G = 0, _8G = int(Control1::RNG0) }
 
enum  Mode : uint8_t { StandBy = 0, Continious = int(Control1::MODE0) }
 
enum  OutputDataRate : uint8_t { _10Hz = 0, _50Hz = int(Control1::ODR0), _100Hz = int(Control1::ODR1), _200Hz = int(Control1::ODR0) | int(Control1::ODR1) }
 
enum  OversampleRate : uint8_t { _512 = 0, _256 = int(Control1::OSR0), _128 = int(Control1::OSR1), _64 = int(Control1::OSR0) | int(Control1::OSR1) }
 
enum  Status : uint8_t { DOR = modm::Bit2, OVL = modm::Bit1, DRDY = modm::Bit0 }
 

Public Member Functions

 Qmc5883l (Data &data, uint8_t address=0x0d)
 
auto x ()
 
auto y ()
 
auto z ()
 
auto status ()
 
modm::ResumableResult< bool > initialize ()
 
modm::ResumableResult< bool > configure (Mode_t mode, Control1_t control)
 
modm::ResumableResult< bool > configure (Control2_t control)
 
modm::ResumableResult< bool > readData ()
 
 MODM_FLAGS8 (Status)
 
 MODM_FLAGS8 (Control1)
 
 MODM_FLAGS8 (Control2)
 
 MODM_FLAGS_CONFIG (Control1, OversampleRate)
 
 MODM_FLAGS_CONFIG (Control1, FullScale)
 
 MODM_FLAGS_CONFIG (Control1, OutputDataRate)
 
 MODM_FLAGS_CONFIG (Control1, Mode)
 
void attachConfigurationHandler (I2c::ConfigurationHandler handler)
 
modm::ResumableResult< bool > ping ()
 
modm::ResumableResult< bool > read (uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
void setAddress (uint8_t address)
 
modm::ResumableResult< bool > write (const uint8_t *buffer, std::size_t size)
 Starts a write transaction and waits until finished.
 
modm::ResumableResult< 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

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 separate 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 ()
 
bool wasTransactionSuccessful ()
 

Protected Attributes

I2cWriteReadTransaction transaction
 

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.
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.

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