modm API documentation
|
#include <modm/driver/inertial/hmc5843.hpp>
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. | |
modm::ResumableResult< bool > | configure (MeasurementRate rate=MeasurementRate::Hz10, Gain gain=Gain::Ga1_0) |
modm::ResumableResult< bool > | setMeasurementRate (MeasurementRate rate) |
modm::ResumableResult< bool > | setGain (Gain gain) |
MODM_FLAGS8 (ConfigA) | |
MODM_FLAGS8 (ConfigB) | |
MODM_FLAGS8 (Mode) | |
MODM_FLAGS8 (Status) | |
void | attachConfigurationHandler (I2c::ConfigurationHandler handler) |
Data & | getData () |
Get the data object for this sensor. | |
Status_t | getStatus () |
modm::ResumableResult< bool > | ping () |
modm::ResumableResult< bool > | read (uint8_t *buffer, std::size_t size) |
Starts a write transaction and waits until finished. | |
modm::ResumableResult< bool > | readMagneticField () |
modm::ResumableResult< bool > | readStatus () |
void | setAddress (uint8_t address) |
modm::ResumableResult< bool > | setOperationMode (OperationMode mode) |
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 | |
modm::ResumableResult< ReturnType > resumable | function (...) |
ConfigA_t | getConfigA () |
ConfigB_t | getConfigB () |
Mode_t | getMode () |
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 () |
Force all resumable functions to stop running at the current nesting level. | |
modm::ResumableResult< bool > | updateConfigA (ConfigA_t setMask, ConfigA_t clearMask=ConfigA_t (0x7f)) |
modm::ResumableResult< bool > | updateConfigB (ConfigB_t setMask, ConfigB_t clearMask=ConfigB_t (0xe0)) |
modm::ResumableResult< bool > | updateMode (Mode_t setMask, Mode_t clearMask=Mode::MD_Mask) |
bool | wasTransactionSuccessful () |
Protected Attributes | |
I2cWriteReadTransaction | transaction |
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.
|
inheritedinline |
Attaches a configuration handler, which is called before a transaction, whenever the configuration has to be changed.
|
inherited |
Run the resumable function.
You need to implement this method in you subclass yourself.
NestingError
if still running, <=NestingError
if it has finished.
|
inheritedinline |
|
inheritedinline |
true
if a resumable function is running at the current nesting level, else false
|
inheritedinlineprotected |
true
when transaction is busy.
|
inheritedinline |
true | device responds to address |
false | no device with address found |
|
inheritedinline |
Sets a new address of the slave device.
address | the slave address not yet shifted left (address < 128). |
|
inheritedinlineprotected |
true
when transaction did not return an error.