M5Unified
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
AK8963_Class.hpp
Go to the documentation of this file.
1 // Copyright (c) M5Stack. All rights reserved.
2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3 
4 #ifndef __M5_AK8963_CLASS_H__
5 #define __M5_AK8963_CLASS_H__
6 
7 #include "IMU_Base.hpp"
8 
9 namespace m5
10 {
11  class AK8963_Class : public IMU_Base
12  {
13  public:
14  static constexpr const std::uint8_t WHO_AM_I_ADDR = 0x00;
15  static constexpr const std::uint8_t STATUS1_ADDR = 0x02;
16  static constexpr const std::uint8_t XOUT_L_ADDR = 0x03;
17  static constexpr const std::uint8_t CTRL_CMD_ADDR = 0x0A;
18  static constexpr const std::uint8_t ASAX_ADDR = 0x10;
19 
20  static constexpr const std::uint8_t POWER_DOWN_CMD = 0x00;
21  static constexpr const std::uint8_t SINGLE_MEASURE_CMD = 0x01;
22  static constexpr const std::uint8_t SELF_TEST_CMD = 0x08;
23  static constexpr const std::uint8_t FUSE_ROM_CMD = 0x0F;
24 
25  static constexpr std::uint8_t DEFAULT_ADDRESS = 0x0C;
26 
27  virtual ~AK8963_Class();
28  AK8963_Class(std::uint8_t i2c_addr = DEFAULT_ADDRESS, std::uint32_t freq = 400000, I2C_Class* i2c = &In_I2C);
29 
30  imu_spec_t begin(I2C_Class* i2c = nullptr) override;
31  imu_spec_t getImuRawData(imu_raw_data_t* data) const override;
32  void getConvertParam(imu_convert_param_t* param) const override;
33 
34  std::uint8_t WhoAmI(void);
35  };
36 }
37 
38 #endif
static constexpr const std::uint8_t CTRL_CMD_ADDR
static constexpr const std::uint8_t SINGLE_MEASURE_CMD
imu_spec_t getImuRawData(imu_raw_data_t *data) const override
static constexpr const std::uint8_t WHO_AM_I_ADDR
AK8963_Class(std::uint8_t i2c_addr=DEFAULT_ADDRESS, std::uint32_t freq=400000, I2C_Class *i2c=&In_I2C)
imu_spec_t begin(I2C_Class *i2c=nullptr) override
std::uint8_t WhoAmI(void)
static constexpr const std::uint8_t SELF_TEST_CMD
static constexpr const std::uint8_t STATUS1_ADDR
static constexpr const std::uint8_t FUSE_ROM_CMD
virtual ~AK8963_Class()
void getConvertParam(imu_convert_param_t *param) const override
static constexpr const std::uint8_t POWER_DOWN_CMD
static constexpr const std::uint8_t ASAX_ADDR
static constexpr std::uint8_t DEFAULT_ADDRESS
static constexpr const std::uint8_t XOUT_L_ADDR
Definition: M5Unified.cpp:48
I2C_Class In_I2C
for internal I2C device
Definition: I2C_Class.cpp:10