From 387d1ffc16ce9e050403baee0ed07f3d9accf632 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 04 七月 2025 14:55:15 +0800
Subject: [PATCH] 初步移植完成0.6.8SDK,但发送有len太长未找到原因

---
 keil/include/drivers/lis3dh_driver.h |  596 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 596 insertions(+), 0 deletions(-)

diff --git a/keil/include/drivers/lis3dh_driver.h b/keil/include/drivers/lis3dh_driver.h
new file mode 100644
index 0000000..6ae5e21
--- /dev/null
+++ b/keil/include/drivers/lis3dh_driver.h
@@ -0,0 +1,596 @@
+/******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
+* File Name          : lis3dh_driver.h
+* Author             : MSH Application Team
+* Author             : Abhishek Anand, Fabio Tota
+* Version            : $Revision:$
+* Date               : $Date:$
+* Description        : Descriptor Header for lis3dh_driver.c driver file
+*
+* HISTORY:
+* Date        | Modification                                | Author
+* 24/06/2011  | Initial Revision                            | Fabio Tota
+* 07/06/2012  | Support for multiple drivers in the same program | Abhishek Anand
+*
+********************************************************************************
+* 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, STMICROELECTRONICS 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.
+*
+* THIS SOFTWARE IS SPECIFICALLY DESIGNED FOR EXCLUSIVE USE WITH ST PARTS.
+*
+*******************************************************************************/
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __LIS3DH_DRIVER__H
+#define __LIS3DH_DRIVER__H
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+#include "math.h"
+#include "stdint.h"
+#include "stdint.h"
+#include "user_config.h"
+//#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) 
+//#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr)) 
+//#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum)) 
+//#define GPIOA_ODR_Addr    (GPIOA_BASE+0x14) //0x4001080C 
+//#define GPIOA_IDR_Addr    (GPIOA_BASE+0x10) //0x40010808 
+
+//#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)  //输出 
+//#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  //输入 
+
+////IO操作函数	 
+//#define IIC2_SCL    PAout(2) //SCL
+//#define IIC2_SDA    PAout(3) //SDA	 
+//#define IIC2_READ_SDA   PAin(3)  //输入SDA 
+#define IIC2_READ_SDA gpio_pin_get_val(SDA_PIN)
+#define SDA_1 gpio_pin_set(SDA_PIN)
+#define SCL_1	gpio_pin_set(SCL_PIN)
+
+#define SDA_0 gpio_pin_clr(SDA_PIN)
+#define SCL_0	gpio_pin_clr(SCL_PIN)
+//IIC所有操作函数
+void IIC2_Init(void);					//初始化IIC的IO口	
+uint8_t LIS3DH_WriteReg(uint8_t WriteAddr, uint8_t Data);	 
+void IIC2_Start(void);				//发送IIC开始信号
+void IIC2_Stop(void);	  			//发送IIC停止信号
+void IIC2_Send_Byte(uint8_t txd);			//IIC发送一个字节
+uint8_t IIC2_Read_Byte(unsigned char ack);//IIC读取一个字节
+uint8_t IIC2_Wait_Ack(void); 				//IIC等待ACK信号
+void IIC2_Ack(void);					//IIC发送ACK信号
+void IIC2_NAck(void);				//IIC不发送ACK信号
+float drv_lis2dh12_get_angle(void);
+//these could change accordingly with the architecture
+void LIS3DH_Data_Init(void);	
+void LIS3DH_ENTER_STY_Init();
+
+void Accelerometer_Init();
+
+void mir3da_init(void);	
+void do_difff_calibrate();
+
+void mir3da_set_enable(int enable);   
+void mir3da_read_raw_data(short *x, short *y, short *z);
+void mir3da_read_data(short *x, short *y, short *z);
+void mir3da_set_active_interrupt_enable(int enable);
+void mir3da_set_step_counter_open(int enable);
+
+uint8_t mir3da_ReadOneByte(uint16_t ReadAddr);
+void mir3da_WriteLenByte(uint16_t WriteAddr,uint32_t DataToWrite,uint8_t Len);
+void mir3da_WriteOneByte(uint16_t WriteAddr,uint8_t DataToWrite);
+
+
+uint32_t mir3da_ReadLenByte(uint16_t ReadAddr,int Len);
+
+
+
+
+
+
+
+
+
+
+
+		//初始化,并操作	
+#ifndef __ARCHDEP__TYPES
+#define __ARCHDEP__TYPES
+
+//为兼容HAL_Cube库,使用统一命名
+//typedef unsigned char uint8_t;
+//typedef unsigned short int uint16_t;
+//typedef short int int16_t;
+//typedef signed char int8_t;
+
+
+
+
+#endif /*__ARCHDEP__TYPES*/
+
+typedef uint8_t LIS3DH_IntPinConf_t;
+typedef uint8_t LIS3DH_Axis_t;
+typedef uint8_t LIS3DH_Int1Conf_t;
+
+
+//define structure
+#ifndef __SHARED__TYPES
+#define __SHARED__TYPES
+
+typedef enum {
+  MEMS_SUCCESS				=		0x01,
+  MEMS_ERROR				=		0x00	
+} status_t;
+
+typedef enum {
+  MEMS_ENABLE				=		0x01,
+  MEMS_DISABLE				=		0x00	
+} State_t;
+
+typedef struct {
+  int16_t AXIS_X;
+  int16_t AXIS_Y;
+  int16_t AXIS_Z;
+} AxesRaw_t;
+
+#endif /*__SHARED__TYPES*/
+
+typedef enum {  
+  LIS3DH_ODR_1Hz		        =		0x01,		
+  LIS3DH_ODR_10Hz                      =		0x02,
+  LIS3DH_ODR_25Hz		        =		0x03,
+  LIS3DH_ODR_50Hz		        =		0x04,
+  LIS3DH_ODR_100Hz		        =		0x05,	
+  LIS3DH_ODR_200Hz		        =		0x06,
+  LIS3DH_ODR_400Hz		        =		0x07,
+  LIS3DH_ODR_1620Hz_LP		        =		0x08,
+  LIS3DH_ODR_1344Hz_NP_5367HZ_LP       =		0x09	
+} LIS3DH_ODR_t;
+
+typedef enum {
+  LIS3DH_POWER_DOWN                    =		0x00,
+  LIS3DH_LOW_POWER 			=		0x01,
+  LIS3DH_NORMAL			=		0x02
+} LIS3DH_Mode_t;
+
+typedef enum {
+  LIS3DH_HPM_NORMAL_MODE_RES           =               0x00,
+  LIS3DH_HPM_REF_SIGNAL                =               0x01,
+  LIS3DH_HPM_NORMAL_MODE               =               0x02,
+  LIS3DH_HPM_AUTORESET_INT             =               0x03
+} LIS3DH_HPFMode_t;
+
+typedef enum {
+  LIS3DH_HPFCF_0                       =               0x00,
+  LIS3DH_HPFCF_1                       =               0x01,
+  LIS3DH_HPFCF_2                       = 		0x02,
+  LIS3DH_HPFCF_3                       =               0x03
+} LIS3DH_HPFCutOffFreq_t;
+
+typedef struct {
+  uint16_t AUX_1;
+  uint16_t AUX_2;
+  uint16_t AUX_3;
+} LIS3DH_Aux123Raw_t;
+
+typedef enum {
+  LIS3DH_FULLSCALE_2                   =               0x00,
+  LIS3DH_FULLSCALE_4                   =               0x01,
+  LIS3DH_FULLSCALE_8                   =               0x02,
+  LIS3DH_FULLSCALE_16                  =               0x03
+} LIS3DH_Fullscale_t;
+
+typedef enum {
+  LIS3DH_BLE_LSB			=		0x00,
+  LIS3DH_BLE_MSB			=		0x01
+} LIS3DH_Endianess_t;
+
+typedef enum {
+  LIS3DH_SELF_TEST_DISABLE             =               0x00,
+  LIS3DH_SELF_TEST_0                   =               0x01,
+  LIS3DH_SELF_TEST_1                   =               0x02
+} LIS3DH_SelfTest_t;
+
+typedef enum {
+  LIS3DH_FIFO_BYPASS_MODE              =               0x00,
+  LIS3DH_FIFO_MODE                     =               0x01,
+  LIS3DH_FIFO_STREAM_MODE              =               0x02,
+  LIS3DH_FIFO_TRIGGER_MODE             =               0x03,
+  LIS3DH_FIFO_DISABLE                  =               0x04
+} LIS3DH_FifoMode_t;
+
+typedef enum {
+  LIS3DH_TRIG_INT1                     =		0x00,
+  LIS3DH_TRIG_INT2 			=		0x01
+} LIS3DH_TrigInt_t;
+
+typedef enum {
+  LIS3DH_SPI_4_WIRE                    =               0x00,
+  LIS3DH_SPI_3_WIRE                    =               0x01
+} LIS3DH_SPIMode_t;
+
+typedef enum {
+  LIS3DH_X_ENABLE                      =               0x01,
+  LIS3DH_X_DISABLE                     =               0x00,
+  LIS3DH_Y_ENABLE                      =               0x02,
+  LIS3DH_Y_DISABLE                     =               0x00,
+  LIS3DH_Z_ENABLE                      =               0x04,
+  LIS3DH_Z_DISABLE                     =               0x00    
+} LIS3DH_AXISenable_t;
+
+typedef enum {
+  LIS3DH_INT1_6D_4D_DISABLE            =               0x00,
+  LIS3DH_INT1_6D_ENABLE                =               0x01,
+  LIS3DH_INT1_4D_ENABLE                =               0x02 
+} LIS3DH_INT_6D_4D_t;
+
+typedef enum {
+  LIS3DH_UP_SX                         =               0x44,
+  LIS3DH_UP_DX                         =               0x42,
+  LIS3DH_DW_SX                         =               0x41,
+  LIS3DH_DW_DX                         =               0x48,
+  LIS3DH_TOP                           =               0x60,
+  LIS3DH_BOTTOM                        =               0x50
+} LIS3DH_POSITION_6D_t;
+
+typedef enum {
+  LIS3DH_INT_MODE_OR                   =               0x00,
+  LIS3DH_INT_MODE_6D_MOVEMENT          =               0x01,
+  LIS3DH_INT_MODE_AND                  =               0x02,
+  LIS3DH_INT_MODE_6D_POSITION          =               0x03  
+} LIS3DH_Int1Mode_t;
+
+
+//interrupt click response
+//  b7 = don't care   b6 = IA  b5 = DClick  b4 = Sclick  b3 = Sign  
+//  b2 = z      b1 = y     b0 = x
+typedef enum {
+LIS3DH_DCLICK_Z_P                      =               0x24,
+LIS3DH_DCLICK_Z_N                      =               0x2C,
+LIS3DH_SCLICK_Z_P                      =               0x14,
+LIS3DH_SCLICK_Z_N                      =               0x1C,
+LIS3DH_DCLICK_Y_P                      =               0x22,
+LIS3DH_DCLICK_Y_N                      =               0x2A,
+LIS3DH_SCLICK_Y_P                      =               0x12,
+LIS3DH_SCLICK_Y_N			=		0x1A,
+LIS3DH_DCLICK_X_P                      =               0x21,
+LIS3DH_DCLICK_X_N                      =               0x29,
+LIS3DH_SCLICK_X_P                      =               0x11,
+LIS3DH_SCLICK_X_N                      =               0x19,
+LIS3DH_NO_CLICK                        =               0x00
+} LIS3DH_Click_Response; 
+
+//TODO: start from here and manage the shared macros etc before this
+
+/* Exported constants --------------------------------------------------------*/
+
+#ifndef __SHARED__CONSTANTS
+#define __SHARED__CONSTANTS
+
+#define MEMS_SET                                        0x01
+#define MEMS_RESET                                      0x00
+
+#endif /*__SHARED__CONSTANTS*/
+
+
+//Register Definition
+#define LIS3DH_WHO_AM_I				0x0F  // device identification register
+
+// CONTROL REGISTER 1
+#define LIS3DH_CTRL_REG1				0x20
+#define LIS3DH_ODR_BIT				        BIT(4)
+#define LIS3DH_LPEN					BIT(3)
+#define LIS3DH_ZEN					BIT(2)
+#define LIS3DH_YEN					BIT(1)
+#define LIS3DH_XEN					BIT(0)
+
+//CONTROL REGISTER 2
+#define LIS3DH_CTRL_REG2				0x21
+#define LIS3DH_HPM     				BIT(6)
+#define LIS3DH_HPCF					BIT(4)
+#define LIS3DH_FDS					BIT(3)
+#define LIS3DH_HPCLICK					BIT(2)
+#define LIS3DH_HPIS2					BIT(1)
+#define LIS3DH_HPIS1					BIT(0)
+
+//CONTROL REGISTER 3
+#define LIS3DH_CTRL_REG3				0x22
+#define LIS3DH_I1_CLICK				BIT(7)
+#define LIS3DH_I1_AOI1					BIT(6)
+#define LIS3DH_I1_AOI2				        BIT(5)
+#define LIS3DH_I1_DRDY1				BIT(4)
+#define LIS3DH_I1_DRDY2				BIT(3)
+#define LIS3DH_I1_WTM					BIT(2)
+#define LIS3DH_I1_ORUN					BIT(1)
+
+//CONTROL REGISTER 6
+#define LIS3DH_CTRL_REG6				0x25
+#define LIS3DH_I2_CLICK				BIT(7)
+#define LIS3DH_I2_INT1					BIT(6)
+#define LIS3DH_I2_BOOT         			BIT(4)
+#define LIS3DH_H_LACTIVE				BIT(1)
+
+//TEMPERATURE CONFIG REGISTER
+#define LIS3DH_TEMP_CFG_REG				0x1F
+#define LIS3DH_ADC_PD				        BIT(7)
+#define LIS3DH_TEMP_EN					BIT(6)
+
+//CONTROL REGISTER 4
+#define LIS3DH_CTRL_REG4				0x23
+#define LIS3DH_BDU					BIT(7)
+#define LIS3DH_BLE					BIT(6)
+#define LIS3DH_FS					BIT(4)
+#define LIS3DH_HR					BIT(3)
+#define LIS3DH_ST       				BIT(1)
+#define LIS3DH_SIM					BIT(0)
+
+//CONTROL REGISTER 5
+#define LIS3DH_CTRL_REG5				0x24
+#define LIS3DH_BOOT                                    BIT(7)
+#define LIS3DH_FIFO_EN                                 BIT(6)
+#define LIS3DH_LIR_INT1                                BIT(3)
+#define LIS3DH_D4D_INT1                                BIT(2)
+
+//REFERENCE/DATA_CAPTURE
+#define LIS3DH_REFERENCE_REG		                0x26
+#define LIS3DH_REF		                	BIT(0)
+
+//STATUS_REG_AXIES
+#define LIS3DH_STATUS_REG				0x27
+#define LIS3DH_ZYXOR                                   BIT(7)
+#define LIS3DH_ZOR                                     BIT(6)
+#define LIS3DH_YOR                                     BIT(5)
+#define LIS3DH_XOR                                     BIT(4)
+#define LIS3DH_ZYXDA                                   BIT(3)
+#define LIS3DH_ZDA                                     BIT(2)
+#define LIS3DH_YDA                                     BIT(1)
+#define LIS3DH_XDA                                     BIT(0)
+
+//STATUS_REG_AUX
+#define LIS3DH_STATUS_AUX				0x07
+
+//INTERRUPT 1 CONFIGURATION
+#define LIS3DH_INT1_CFG				0x30
+#define LIS3DH_ANDOR                                   BIT(7)
+#define LIS3DH_INT_6D                                  BIT(6)
+#define LIS3DH_ZHIE                                    BIT(5)
+#define LIS3DH_ZLIE                                    BIT(4)
+#define LIS3DH_YHIE                                    BIT(3)
+#define LIS3DH_YLIE                                    BIT(2)
+#define LIS3DH_XHIE                                    BIT(1)
+#define LIS3DH_XLIE                                    BIT(0)
+
+//FIFO CONTROL REGISTER
+#define LIS3DH_FIFO_CTRL_REG                           0x2E
+#define LIS3DH_FM                                      BIT(6)
+#define LIS3DH_TR                                      BIT(5)
+#define LIS3DH_FTH                                     BIT(0)
+
+//CONTROL REG3 bit mask
+#define LIS3DH_CLICK_ON_PIN_INT1_ENABLE                0x80
+#define LIS3DH_CLICK_ON_PIN_INT1_DISABLE               0x00
+#define LIS3DH_I1_INT1_ON_PIN_INT1_ENABLE              0x40
+#define LIS3DH_I1_INT1_ON_PIN_INT1_DISABLE             0x00
+#define LIS3DH_I1_INT2_ON_PIN_INT1_ENABLE              0x20
+#define LIS3DH_I1_INT2_ON_PIN_INT1_DISABLE             0x00
+#define LIS3DH_I1_DRDY1_ON_INT1_ENABLE                 0x10
+#define LIS3DH_I1_DRDY1_ON_INT1_DISABLE                0x00
+#define LIS3DH_I1_DRDY2_ON_INT1_ENABLE                 0x08
+#define LIS3DH_I1_DRDY2_ON_INT1_DISABLE                0x00
+#define LIS3DH_WTM_ON_INT1_ENABLE                      0x04
+#define LIS3DH_WTM_ON_INT1_DISABLE                     0x00
+#define LIS3DH_INT1_OVERRUN_ENABLE                     0x02
+#define LIS3DH_INT1_OVERRUN_DISABLE                    0x00
+
+//CONTROL REG6 bit mask
+#define LIS3DH_CLICK_ON_PIN_INT2_ENABLE                0x80
+#define LIS3DH_CLICK_ON_PIN_INT2_DISABLE               0x00
+#define LIS3DH_I2_INT1_ON_PIN_INT2_ENABLE              0x40
+#define LIS3DH_I2_INT1_ON_PIN_INT2_DISABLE             0x00
+#define LIS3DH_I2_INT2_ON_PIN_INT2_ENABLE              0x20
+#define LIS3DH_I2_INT2_ON_PIN_INT2_DISABLE             0x00
+#define LIS3DH_I2_BOOT_ON_INT2_ENABLE                  0x10
+#define LIS3DH_I2_BOOT_ON_INT2_DISABLE                 0x00
+#define LIS3DH_INT_ACTIVE_HIGH                         0x00
+#define LIS3DH_INT_ACTIVE_LOW                          0x02
+
+//INT1_CFG bit mask
+#define LIS3DH_INT1_AND                                0x80
+#define LIS3DH_INT1_OR                                 0x00
+#define LIS3DH_INT1_ZHIE_ENABLE                        0x20
+#define LIS3DH_INT1_ZHIE_DISABLE                       0x00
+#define LIS3DH_INT1_ZLIE_ENABLE                        0x10
+#define LIS3DH_INT1_ZLIE_DISABLE                       0x00
+#define LIS3DH_INT1_YHIE_ENABLE                        0x08
+#define LIS3DH_INT1_YHIE_DISABLE                       0x00
+#define LIS3DH_INT1_YLIE_ENABLE                        0x04
+#define LIS3DH_INT1_YLIE_DISABLE                       0x00
+#define LIS3DH_INT1_XHIE_ENABLE                        0x02
+#define LIS3DH_INT1_XHIE_DISABLE                       0x00
+#define LIS3DH_INT1_XLIE_ENABLE                        0x01
+#define LIS3DH_INT1_XLIE_DISABLE                       0x00
+
+//INT1_SRC bit mask
+#define LIS3DH_INT1_SRC_IA                             0x40
+#define LIS3DH_INT1_SRC_ZH                             0x20
+#define LIS3DH_INT1_SRC_ZL                             0x10
+#define LIS3DH_INT1_SRC_YH                             0x08
+#define LIS3DH_INT1_SRC_YL                             0x04
+#define LIS3DH_INT1_SRC_XH                             0x02
+#define LIS3DH_INT1_SRC_XL                             0x01
+
+//INT1 REGISTERS
+#define LIS3DH_INT1_THS                                0x32
+#define LIS3DH_INT1_DURATION                           0x33
+
+//INTERRUPT 1 SOURCE REGISTER
+#define LIS3DH_INT1_SRC				0x31
+
+//FIFO Source Register bit Mask
+#define LIS3DH_FIFO_SRC_WTM                            0x80
+#define LIS3DH_FIFO_SRC_OVRUN                          0x40
+#define LIS3DH_FIFO_SRC_EMPTY                          0x20
+  
+//INTERRUPT CLICK REGISTER
+#define LIS3DH_CLICK_CFG				0x38
+//INTERRUPT CLICK CONFIGURATION bit mask
+#define LIS3DH_ZD_ENABLE                               0x20
+#define LIS3DH_ZD_DISABLE                              0x00
+#define LIS3DH_ZS_ENABLE                               0x10
+#define LIS3DH_ZS_DISABLE                              0x00
+#define LIS3DH_YD_ENABLE                               0x08
+#define LIS3DH_YD_DISABLE                              0x00
+#define LIS3DH_YS_ENABLE                               0x04
+#define LIS3DH_YS_DISABLE                              0x00
+#define LIS3DH_XD_ENABLE                               0x02
+#define LIS3DH_XD_DISABLE                              0x00
+#define LIS3DH_XS_ENABLE                               0x01
+#define LIS3DH_XS_DISABLE                              0x00
+
+//INTERRUPT CLICK SOURCE REGISTER
+#define LIS3DH_CLICK_SRC                               0x39
+//INTERRUPT CLICK SOURCE REGISTER bit mask
+#define LIS3DH_IA                                      0x40
+#define LIS3DH_DCLICK                                  0x20
+#define LIS3DH_SCLICK                                  0x10
+#define LIS3DH_CLICK_SIGN                              0x08
+#define LIS3DH_CLICK_Z                                 0x04
+#define LIS3DH_CLICK_Y                                 0x02
+#define LIS3DH_CLICK_X                                 0x01
+
+//Click-click Register
+#define LIS3DH_CLICK_THS                               0x3A
+#define LIS3DH_TIME_LIMIT                              0x3B
+#define LIS3DH_TIME_LATENCY                            0x3C
+#define LIS3DH_TIME_WINDOW                             0x3D
+
+//OUTPUT REGISTER
+#define LIS3DH_OUT_X_L					0x28
+#define LIS3DH_OUT_X_H					0x29
+#define LIS3DH_OUT_Y_L					0x2A
+#define LIS3DH_OUT_Y_H					0x2B
+#define LIS3DH_OUT_Z_L					0x2C
+#define LIS3DH_OUT_Z_H					0x2D
+
+//AUX REGISTER
+#define LIS3DH_OUT_1_L					0x08
+#define LIS3DH_OUT_1_H					0x09
+#define LIS3DH_OUT_2_L					0x0A
+#define LIS3DH_OUT_2_H					0x0B
+#define LIS3DH_OUT_3_L					0x0C
+#define LIS3DH_OUT_3_H					0x0D
+
+//STATUS REGISTER bit mask
+#define LIS3DH_STATUS_REG_ZYXOR                        0x80    // 1	:	new data set has over written the previous one
+							// 0	:	no overrun has occurred (default)	
+#define LIS3DH_STATUS_REG_ZOR                          0x40    // 0	:	no overrun has occurred (default)
+							// 1	:	new Z-axis data has over written the previous one
+#define LIS3DH_STATUS_REG_YOR                          0x20    // 0	:	no overrun has occurred (default)
+							// 1	:	new Y-axis data has over written the previous one
+#define LIS3DH_STATUS_REG_XOR                          0x10    // 0	:	no overrun has occurred (default)
+							// 1	:	new X-axis data has over written the previous one
+#define LIS3DH_STATUS_REG_ZYXDA                        0x08    // 0	:	a new set of data is not yet avvious one
+                                                        // 1	:	a new set of data is available 
+#define LIS3DH_STATUS_REG_ZDA                          0x04    // 0	:	a new data for the Z-Axis is not availvious one
+                                                        // 1	:	a new data for the Z-Axis is available
+#define LIS3DH_STATUS_REG_YDA                          0x02    // 0	:	a new data for the Y-Axis is not available
+                                                        // 1	:	a new data for the Y-Axis is available
+#define LIS3DH_STATUS_REG_XDA                          0x01    // 0	:	a new data for the X-Axis is not available
+
+#define LIS3DH_DATAREADY_BIT                           LIS3DH_STATUS_REG_ZYXDA
+
+
+//STATUS AUX REGISTER bit mask
+#define LIS3DH_STATUS_AUX_321OR                         0x80
+#define LIS3DH_STATUS_AUX_3OR                           0x40
+#define LIS3DH_STATUS_AUX_2OR                           0x20
+#define LIS3DH_STATUS_AUX_1OR                           0x10
+#define LIS3DH_STATUS_AUX_321DA                         0x08
+#define LIS3DH_STATUS_AUX_3DA                           0x04
+#define LIS3DH_STATUS_AUX_2DA                           0x02
+#define LIS3DH_STATUS_AUX_1DA                           0x01
+
+#define LIS3DH_MEMS_I2C_ADDRESS			        0x33
+
+//FIFO REGISTERS
+#define LIS3DH_FIFO_CTRL_REG			        0x2E
+#define LIS3DH_FIFO_SRC_REG			        0x2F
+
+
+/* Exported macro ------------------------------------------------------------*/
+
+#ifndef __SHARED__MACROS
+
+#define __SHARED__MACROS
+#define ValBit(VAR,Place)         (VAR & (1<<Place))
+#define BIT(x) ( (x) )
+
+#endif /*__SHARED__MACROS*/
+
+/* Exported functions --------------------------------------------------------*/
+//Sensor Configuration Functions
+status_t LIS3DH_SetODR(LIS3DH_ODR_t ov);
+status_t LIS3DH_SetMode(LIS3DH_Mode_t md);
+status_t LIS3DH_SetAxis(LIS3DH_Axis_t axis);
+status_t LIS3DH_SetFullScale(LIS3DH_Fullscale_t fs);
+status_t LIS3DH_SetBDU(State_t bdu);
+status_t LIS3DH_SetBLE(LIS3DH_Endianess_t ble);
+status_t LIS3DH_SetSelfTest(LIS3DH_SelfTest_t st);
+status_t LIS3DH_SetTemperature(State_t state);
+status_t LIS3DH_SetADCAux(State_t state);
+
+//Filtering Functions
+status_t LIS3DH_HPFClickEnable(State_t hpfe);
+status_t LIS3DH_HPFAOI1Enable(State_t hpfe);
+status_t LIS3DH_HPFAOI2Enable(State_t hpfe);
+status_t LIS3DH_SetHPFMode(LIS3DH_HPFMode_t hpf);
+status_t LIS3DH_SetHPFCutOFF(LIS3DH_HPFCutOffFreq_t hpf);
+status_t LIS3DH_SetFilterDataSel(State_t state);
+
+//Interrupt Functions
+status_t LIS3DH_SetInt1Pin(LIS3DH_IntPinConf_t pinConf);
+status_t LIS3DH_SetInt2Pin(LIS3DH_IntPinConf_t pinConf);
+status_t LIS3DH_Int1LatchEnable(State_t latch);
+status_t LIS3DH_ResetInt1Latch(void);
+status_t LIS3DH_SetIntConfiguration(LIS3DH_Int1Conf_t ic);
+status_t LIS3DH_SetInt1Threshold(uint8_t ths);
+status_t LIS3DH_SetInt1Duration(LIS3DH_Int1Conf_t id);
+status_t LIS3DH_SetIntMode(LIS3DH_Int1Mode_t ic);
+status_t LIS3DH_SetClickCFG(uint8_t status);
+status_t LIS3DH_SetInt6D4DConfiguration(LIS3DH_INT_6D_4D_t ic);
+status_t LIS3DH_GetInt1Src(uint8_t* val);
+status_t LIS3DH_GetInt1SrcBit(uint8_t statusBIT, uint8_t* val);
+
+//FIFO Functions
+status_t LIS3DH_FIFOModeEnable(LIS3DH_FifoMode_t fm);
+status_t LIS3DH_SetWaterMark(uint8_t wtm);
+status_t LIS3DH_SetTriggerInt(LIS3DH_TrigInt_t tr);
+status_t LIS3DH_GetFifoSourceReg(uint8_t* val);
+status_t LIS3DH_GetFifoSourceBit(uint8_t statusBIT, uint8_t* val);
+status_t LIS3DH_GetFifoSourceFSS(uint8_t* val);
+
+//Other Reading Functions
+status_t LIS3DH_GetStatusReg(uint8_t* val);
+status_t LIS3DH_GetStatusBit(uint8_t statusBIT, uint8_t* val);
+status_t LIS3DH_GetStatusAUXBit(uint8_t statusBIT, uint8_t* val);
+status_t LIS3DH_GetStatusAUX(uint8_t* val);
+status_t LIS3DH_GetAccAxesRaw(AxesRaw_t* buff);
+status_t LIS3DH_GetAuxRaw(LIS3DH_Aux123Raw_t* buff);
+status_t LIS3DH_GetClickResponse(uint8_t* val);
+status_t LIS3DH_GetTempRaw(int8_t* val);
+status_t LIS3DH_GetWHO_AM_I(uint8_t* val);
+status_t LIS3DH_Get6DPosition(uint8_t* val);
+
+//Generic
+// i.e. uint8_t LIS3DH_ReadReg(uint8_t Reg, uint8_t* Data);
+// i.e. uint8_t LIS3DH_WriteReg(uint8_t Reg, uint8_t Data);
+
+
+#endif /* __LIS3DH_H */
+
+/******************* (C) COPYRIGHT 2012 STMicroelectronics *****END OF FILE****/
+
+
+

--
Gitblit v1.9.3