spearnet_mems.h

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 113 行

H
113
字号
//-----------------------------------------------------------------------------
// SpearNet_MEMS
//-----------------------------------------------------------------------------
#ifndef SpearNet_MEMS_H
#define SpearNet_MEMS_H

//-----------------------------------------------------------------------------
#include "hal_i2c.h"

//-----------------------------------------------------------------------------
// MEMS
//-----------------------------------------------------------------------------
//---address of slave I want to communicate---
#define kLIS3L02DQ_SLAVE_ADDR    0x3A

//-----------------------------------------------------------------------------
//---accelerometer register addresses---
#define OFFSET_X         0x16
#define OFFSET_Y         0x17
#define OFFSET_Z         0x18
#define GAIN_X           0x19
#define GAIN_Y           0x1A
#define GAIN_Z           0x1B
#define CTRL_REG1        0x20
#define CTRL_REG2        0x21
#define WAKE_UP_CFG      0x23
#define WAKE_UP_SRC      0x24
#define WAKE_UP_ACK      0x25
#define STATUS_REG       0x27
#define OUTX_L           0x28
#define OUTX_H           0x29
#define OUTY_L           0x2A
#define OUTY_H           0x2B
#define OUTZ_L           0x2C
#define OUTZ_H           0x2D
#define THS_L            0x2E
#define THS_H            0x2F
#define REPETIR          0x80

//-----------------------------------------------------------------------------
//---Settings for CTRL_REG1---

// Power Down Control (PD)
#define LIS_PD_OFF 0x00
#define LIS_PD_ON  0x40

// Decimation Factor Control (DF)
#define LIS_DF_BY128 0x00
#define LIS_DF_BY64  0x10
#define LIS_DF_BY32  0x20
#define LIS_DF_BY8   0x30

// Self Test
#define LIS_ST_NORMAL 0x00
#define LIS_ST_TEST   0x08

// Enable Axis
#define LIS_EA_ALL    0x07

//-----------------------------------------------------------------------------
//---Settings for CTRL_REG2---

// Full Scale (FS)
#define LIS_FS_2G 0x00
#define LIS_FS_6G 0x80

// Block Data Update (BDU)
#define LIS_BDU_CONTINUOUS 0x00
#define LIS_BDU_WAIT       0x40

// Big/Little Endian Selection (BLE)
#define LIS_BLE_LE 0x00
#define LIS_BLE_BE 0x20

// Data Alignment Selection DAS
#define LIS_DAS_12BIT 0x00
#define LIS_DAS_16BIT 0x01

//-----------------------------------------------------------------------------
#define LIS_BLE_XX LIS_BLE_BE

//-----------------------------------------------------------------------------
typedef struct {
  u8 outx_l;
  u8 outx_h;
  u8 outy_l;
  u8 outy_h;
  u8 outz_l;
  u8 outz_h;
} t_mems_data;

//-----------------------------------------------------------------------------
//You will use GPIO4,5

//-----------------------------------------------------------------------------
inline u16 MEMS_u16 (u8 hi, u8 lo)
{
  u16 dato;

  dato  = (u16)hi <<8;
  dato |= lo;

  return (dato);
}

//-----------------------------------------------------------------------------
void MEMS_Init  (void);
void MEMS_Read  (t_mems_data *mems_data);

//-----------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?