KT24-1110_65E-HA-651B/apps/common/device/gSensor/mira_std.h
2024-11-10 18:44:17 +08:00

100 lines
4.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************/
/**
******************************************************************************
* @file mira_std.h
* @author ycwang@miramems.com
* @version V1.0
* @date 26-Nov-2014
* @brief
******************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, MiraMEMS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>&copy; COPYRIGHT 2014 MiraMEMS</center></h2>
*/
/*******************************************************************************/
#ifndef __mira_std_h
#define __mira_std_h
/*******************************************************************************
Macro definitions - Register define for Gsensor asic
********************************************************************************/
#define NSA_REG_SPI_I2C 0x00
#define NSA_REG_WHO_AM_I 0x01
#define NSA_REG_ACC_X_LSB 0x02
#define NSA_REG_ACC_X_MSB 0x03
#define NSA_REG_ACC_Y_LSB 0x04
#define NSA_REG_ACC_Y_MSB 0x05
#define NSA_REG_ACC_Z_LSB 0x06
#define NSA_REG_ACC_Z_MSB 0x07
#define NSA_REG_MOTION_FLAG 0x09
#define NSA_REG_G_RANGE 0x0f
#define NSA_REG_ODR_AXIS_DISABLE 0x10
#define NSA_REG_POWERMODE_BW 0x11
#define NSA_REG_SWAP_POLARITY 0x12
#define NSA_REG_FIFO_CTRL 0x14
#define NSA_REG_INTERRUPT_SETTINGS0 0x15
#define NSA_REG_INTERRUPT_SETTINGS1 0x16
#define NSA_REG_INTERRUPT_SETTINGS2 0x17
#define NSA_REG_INTERRUPT_MAPPING1 0x19
#define NSA_REG_INTERRUPT_MAPPING2 0x1a
#define NSA_REG_INTERRUPT_MAPPING3 0x1b
#define NSA_REG_INT_PIN_CONFIG 0x20
#define NSA_REG_INT_LATCH 0x21
#define NSA_REG_ACTIVE_DURATION 0x27
#define NSA_REG_ACTIVE_THRESHOLD 0x28
#define NSA_REG_TAP_DURATION 0x2A
#define NSA_REG_TAP_THRESHOLD 0x2B
#define NSA_REG_ENGINEERING_MODE 0x7f
#define NSA_REG_SENS_COMP 0x8c
#define NSA_REG_MEMS_OPTION 0x8f
#define NSA_REG_CHIP_INFO 0xc0
/*******************************************************************************
Typedef definitions
********************************************************************************/
#define ARM_BIT_8 0
#if ARM_BIT_8
//如下数据类型是在8位机上定义的在其它平台比如32位可能存在差别需要根据实际情况修改 。
typedef unsigned char u8_m; /* 无符号8位整型变量*/
typedef signed char s8_m; /* 有符号8位整型变量*/
typedef unsigned int u16_m; /* 无符号16位整型变量*/
typedef signed int s16_m; /* 有符号16位整型变量*/
typedef unsigned long u32_m; /* 无符号32位整型变量*/
typedef signed long s32_m; /* 有符号32位整型变量*/
typedef float fp32_m; /* 单精度浮点数32位长度*/
typedef double fp64_m; /* 双精度浮点数64位长度*/
#else
//如下数据类型是在32位机上定义的在其它平台比如8位可能存在差别需要根据实际情况修改 。
typedef unsigned char u8_m; /* 无符号8位整型变量*/
typedef signed char s8_m; /* 有符号8位整型变量*/
typedef unsigned short u16_m; /* 无符号16位整型变量*/
typedef signed short s16_m; /* 有符号16位整型变量*/
typedef unsigned int u32_m; /* 无符号32位整型变量*/
typedef signed int s32_m; /* 有符号32位整型变量*/
typedef float fp32_m; /* 单精度浮点数32位长度*/
typedef double fp64_m; /* 双精度浮点数64位长度*/
#endif
typedef struct AccData_tag {
s16_m ax; //加速度计原始数据结构体 数据格式 0 0 1024
s16_m ay;
s16_m az;
} AccData;
#define mir3da_abs(x) (((x) > 0) ? (x) : (-(x)))
s32_m mir3da_sqrt(s32_m val);
void mir3da_memset(void *dest, u8_m count);
void *mir3da_memcpy(void *dest, void *source, u8_m count);
#endif