mirror of
https://github.com/EFeru/hoverboard-sideboard-hack-STM.git
synced 2025-07-27 17:29:32 +00:00
108 lines
3.7 KiB
C
108 lines
3.7 KiB
C
/**
|
|
* This file was taken from InvenSense MotionApps v6.12 library and
|
|
* refactored for the hoverboard-sideboard-hack project.
|
|
*
|
|
* Copyright (C) 2020-2021 Emanuel FERU <aerdronix@gmail.com>
|
|
* Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
// Define to prevent recursive inclusion
|
|
#ifndef MPU6050_DMP_H
|
|
#define MPU6050_DMP_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define TAP_X (0x01)
|
|
#define TAP_Y (0x02)
|
|
#define TAP_Z (0x04)
|
|
#define TAP_XYZ (0x07)
|
|
|
|
#define TAP_X_UP (0x01)
|
|
#define TAP_X_DOWN (0x02)
|
|
#define TAP_Y_UP (0x03)
|
|
#define TAP_Y_DOWN (0x04)
|
|
#define TAP_Z_UP (0x05)
|
|
#define TAP_Z_DOWN (0x06)
|
|
|
|
#define ANDROID_ORIENT_PORTRAIT (0x00)
|
|
#define ANDROID_ORIENT_LANDSCAPE (0x01)
|
|
#define ANDROID_ORIENT_REVERSE_PORTRAIT (0x02)
|
|
#define ANDROID_ORIENT_REVERSE_LANDSCAPE (0x03)
|
|
|
|
#define DMP_INT_GESTURE (0x01)
|
|
#define DMP_INT_CONTINUOUS (0x02)
|
|
|
|
#define DMP_FEATURE_TAP (0x001)
|
|
#define DMP_FEATURE_ANDROID_ORIENT (0x002)
|
|
#define DMP_FEATURE_LP_QUAT (0x004)
|
|
#define DMP_FEATURE_PEDOMETER (0x008)
|
|
#define DMP_FEATURE_6X_LP_QUAT (0x010)
|
|
#define DMP_FEATURE_GYRO_CAL (0x020)
|
|
#define DMP_FEATURE_SEND_RAW_ACCEL (0x040)
|
|
#define DMP_FEATURE_SEND_RAW_GYRO (0x080)
|
|
#define DMP_FEATURE_SEND_CAL_GYRO (0x100)
|
|
|
|
#define INV_WXYZ_QUAT (0x100)
|
|
|
|
/* Set up functions. */
|
|
int dmp_load_motion_driver_firmware(void);
|
|
int dmp_set_fifo_rate(unsigned short rate);
|
|
int dmp_get_fifo_rate(unsigned short *rate);
|
|
int dmp_enable_feature(unsigned short mask);
|
|
int dmp_get_enabled_features(unsigned short *mask);
|
|
int dmp_set_interrupt_mode(unsigned char mode);
|
|
int dmp_set_orientation(unsigned short orient);
|
|
int dmp_set_gyro_bias(long *bias);
|
|
int dmp_set_accel_bias(long *bias);
|
|
|
|
/* Tap functions. */
|
|
int dmp_register_tap_cb(void (*func)(unsigned char, unsigned char));
|
|
int dmp_set_tap_thresh(unsigned char axis, unsigned short thresh);
|
|
int dmp_set_tap_axes(unsigned char axis);
|
|
int dmp_set_tap_count(unsigned char min_taps);
|
|
int dmp_set_tap_time(unsigned short time);
|
|
int dmp_set_tap_time_multi(unsigned short time);
|
|
int dmp_set_shake_reject_thresh(long sf, unsigned short thresh);
|
|
int dmp_set_shake_reject_time(unsigned short time);
|
|
int dmp_set_shake_reject_timeout(unsigned short time);
|
|
|
|
/* Android orientation functions. */
|
|
int dmp_register_android_orient_cb(void (*func)(unsigned char));
|
|
|
|
/* LP quaternion functions. */
|
|
int dmp_enable_lp_quat(unsigned char enable);
|
|
int dmp_enable_6x_lp_quat(unsigned char enable);
|
|
|
|
/* Pedometer functions. */
|
|
int dmp_get_pedometer_step_count(unsigned long *count);
|
|
int dmp_set_pedometer_step_count(unsigned long count);
|
|
int dmp_get_pedometer_walk_time(unsigned long *time);
|
|
int dmp_set_pedometer_walk_time(unsigned long time);
|
|
|
|
/* DMP gyro calibration functions. */
|
|
int dmp_enable_gyro_cal(unsigned char enable);
|
|
|
|
/* Read function. This function should be called whenever the MPU interrupt is
|
|
* detected.
|
|
*/
|
|
int dmp_read_fifo(short *gyro, short *accel, long *quat,
|
|
unsigned long *timestamp, short *sensors, unsigned char *more);
|
|
|
|
|
|
#endif
|
|
|