ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
qmc5883l.h
Go to the documentation of this file.
1#pragma once
2
6#include "esphome/core/hal.h"
7
8namespace esphome::qmc5883l {
9
16
21
28
30 public:
31 void setup() override;
32 void dump_config() override;
33 void update() override;
34 void loop() override;
35
36 void set_drdy_pin(GPIOPin *pin) { drdy_pin_ = pin; }
37 void set_datarate(QMC5883LDatarate datarate) { datarate_ = datarate; }
39 void set_oversampling(QMC5883LOversampling oversampling) { oversampling_ = oversampling; }
40 void set_x_sensor(sensor::Sensor *x_sensor) { x_sensor_ = x_sensor; }
41 void set_y_sensor(sensor::Sensor *y_sensor) { y_sensor_ = y_sensor; }
42 void set_z_sensor(sensor::Sensor *z_sensor) { z_sensor_ = z_sensor; }
43 void set_heading_sensor(sensor::Sensor *heading_sensor) { heading_sensor_ = heading_sensor; }
44 void set_temperature_sensor(sensor::Sensor *temperature_sensor) { temperature_sensor_ = temperature_sensor; }
45
46 protected:
47 static void IRAM_ATTR gpio_intr(QMC5883LComponent *arg);
48 void read_sensor_();
49
58 GPIOPin *drdy_pin_{nullptr};
59 bool drdy_use_isr_{false};
64 i2c::ErrorCode read_bytes_16_le_(uint8_t a_register, uint16_t *data, uint8_t len = 1);
66};
67
68} // namespace esphome::qmc5883l
Helper class to request loop() to be called as fast as possible.
Definition helpers.h:1993
This class simplifies creating components that periodically check a state.
Definition component.h:585
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
sensor::Sensor * temperature_sensor_
Definition qmc5883l.h:57
enum esphome::qmc5883l::QMC5883LComponent::ErrorCode error_code_
void set_z_sensor(sensor::Sensor *z_sensor)
Definition qmc5883l.h:42
i2c::ErrorCode read_bytes_16_le_(uint8_t a_register, uint16_t *data, uint8_t len=1)
Definition qmc5883l.cpp:206
void set_heading_sensor(sensor::Sensor *heading_sensor)
Definition qmc5883l.h:43
void set_datarate(QMC5883LDatarate datarate)
Definition qmc5883l.h:37
QMC5883LOversampling oversampling_
Definition qmc5883l.h:52
void set_temperature_sensor(sensor::Sensor *temperature_sensor)
Definition qmc5883l.h:44
void set_x_sensor(sensor::Sensor *x_sensor)
Definition qmc5883l.h:40
static void IRAM_ATTR gpio_intr(QMC5883LComponent *arg)
Definition qmc5883l.cpp:26
void set_range(QMC5883LRange range)
Definition qmc5883l.h:38
void set_oversampling(QMC5883LOversampling oversampling)
Definition qmc5883l.h:39
HighFrequencyLoopRequester high_freq_
Definition qmc5883l.h:65
void set_y_sensor(sensor::Sensor *y_sensor)
Definition qmc5883l.h:41
void set_drdy_pin(GPIOPin *pin)
Definition qmc5883l.h:36
Base-class for all sensors.
Definition sensor.h:47
Range range
Definition msa3xx.h:0
ErrorCode
Error codes returned by I2CBus and I2CDevice methods.
Definition i2c_bus.h:12
const void size_t len
Definition hal.h:64