|
NinjaFlight
|
#include <stdbool.h>#include <stdint.h>#include <math.h>#include "build_config.h"#include "platform.h"#include "debug.h"#include "common/axis.h"#include "common/maths.h"#include "config/parameter_group.h"#include "system.h"#include "gpio.h"#include "exti.h"#include "bus_i2c.h"#include "bus_spi.h"#include "sensor.h"#include "compass.h"#include "accgyro.h"#include "accgyro_mpu.h"#include "accgyro_mpu6500.h"#include "accgyro_spi_mpu6500.h"#include "compass_ak8963.h"
Macros | |
| #define | AK8963_I2C_INSTANCE I2C_DEVICE |
| #define | AK8963_MAG_I2C_ADDRESS 0x0C |
| #define | AK8963_Device_ID 0x48 |
| #define | AK8963_MAG_REG_WHO_AM_I 0x00 |
| #define | AK8963_MAG_REG_INFO 0x01 |
| #define | AK8963_MAG_REG_STATUS1 0x02 |
| #define | AK8963_MAG_REG_HXL 0x03 |
| #define | AK8963_MAG_REG_HXH 0x04 |
| #define | AK8963_MAG_REG_HYL 0x05 |
| #define | AK8963_MAG_REG_HYH 0x06 |
| #define | AK8963_MAG_REG_HZL 0x07 |
| #define | AK8963_MAG_REG_HZH 0x08 |
| #define | AK8963_MAG_REG_STATUS2 0x09 |
| #define | AK8963_MAG_REG_CNTL 0x0a |
| #define | AK8963_MAG_REG_ASCT 0x0c |
| #define | AK8963_MAG_REG_ASAX 0x10 |
| #define | AK8963_MAG_REG_ASAY 0x11 |
| #define | AK8963_MAG_REG_ASAZ 0x12 |
| #define | READ_FLAG 0x80 |
| #define | STATUS1_DATA_READY 0x01 |
| #define | STATUS1_DATA_OVERRUN 0x02 |
| #define | STATUS2_DATA_ERROR 0x02 |
| #define | STATUS2_MAG_SENSOR_OVERFLOW 0x03 |
| #define | CNTL_MODE_POWER_DOWN 0x00 |
| #define | CNTL_MODE_ONCE 0x01 |
| #define | CNTL_MODE_CONT1 0x02 |
| #define | CNTL_MODE_CONT2 0x06 |
| #define | CNTL_MODE_SELF_TEST 0x08 |
| #define | CNTL_MODE_FUSE_ROM 0x0F |
Functions | |
| bool | ak8963Detect (mag_t *mag) |
| void | ak8963Init (void) |
| bool | ak8963Read (int16_t *magData) |
| #define AK8963_Device_ID 0x48 |
| #define AK8963_I2C_INSTANCE I2C_DEVICE |
| #define AK8963_MAG_I2C_ADDRESS 0x0C |
| #define AK8963_MAG_REG_ASAX 0x10 |
| #define AK8963_MAG_REG_ASAY 0x11 |
| #define AK8963_MAG_REG_ASAZ 0x12 |
| #define AK8963_MAG_REG_ASCT 0x0c |
| #define AK8963_MAG_REG_CNTL 0x0a |
| #define AK8963_MAG_REG_HXH 0x04 |
| #define AK8963_MAG_REG_HXL 0x03 |
| #define AK8963_MAG_REG_HYH 0x06 |
| #define AK8963_MAG_REG_HYL 0x05 |
| #define AK8963_MAG_REG_HZH 0x08 |
| #define AK8963_MAG_REG_HZL 0x07 |
| #define AK8963_MAG_REG_INFO 0x01 |
| #define AK8963_MAG_REG_STATUS1 0x02 |
| #define AK8963_MAG_REG_STATUS2 0x09 |
| #define AK8963_MAG_REG_WHO_AM_I 0x00 |
| #define CNTL_MODE_CONT1 0x02 |
| #define CNTL_MODE_CONT2 0x06 |
| #define CNTL_MODE_FUSE_ROM 0x0F |
| #define CNTL_MODE_ONCE 0x01 |
| #define CNTL_MODE_POWER_DOWN 0x00 |
| #define CNTL_MODE_SELF_TEST 0x08 |
| #define READ_FLAG 0x80 |
| #define STATUS1_DATA_OVERRUN 0x02 |
| #define STATUS1_DATA_READY 0x01 |
| #define STATUS2_DATA_ERROR 0x02 |
| #define STATUS2_MAG_SENSOR_OVERFLOW 0x03 |
| bool ak8963Detect | ( | mag_t * | mag | ) |

| void ak8963Init | ( | void | ) |

| bool ak8963Read | ( | int16_t * | magData | ) |