Subversion Repositories Code-Repo

Rev

Rev 223 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
223 Kevin 1
#ifndef LSM303_H
2
#define	LSM303_H
3
 
4
#define LSM303_CTRL_REG1_A       0x20
5
#define LSM303_CTRL_REG2_A       0x21
6
#define LSM303_CTRL_REG3_A       0x22
7
#define LSM303_CTRL_REG4_A       0x23
8
#define LSM303_CTRL_REG5_A       0x24
9
#define LSM303_CTRL_REG6_A       0x25
10
#define LSM303_REFERENCE_A       0x26
11
#define LSM303_STATUS_REG_A      0x27
12
 
13
#define LSM303_OUT_X_L_A         0x28
14
#define LSM303_OUT_X_H_A         0x29
15
#define LSM303_OUT_Y_L_A         0x2A
16
#define LSM303_OUT_Y_H_A         0x2B
17
#define LSM303_OUT_Z_L_A         0x2C
18
#define LSM303_OUT_Z_H_A         0x2D
19
 
20
#define LSM303_FIFO_CTRL_REG_A   0x2E
21
#define LSM303_FIFO_SRC_REG_A    0x2F
22
 
23
#define LSM303_INT1_CFG_A        0x30
24
#define LSM303_INT1_SRC_A        0x31
25
#define LSM303_INT1_THS_A        0x32
26
#define LSM303_INT1_DURATION_A   0x33
27
#define LSM303_INT2_CFG_A        0x34
28
#define LSM303_INT2_SRC_A        0x35
29
#define LSM303_INT2_THS_A        0x36
30
#define LSM303_INT2_DURATION_A   0x37
31
 
32
#define LSM303_CLICK_CFG_A       0x38
33
#define LSM303_CLICK_SRC_A       0x39
34
#define LSM303_CLICK_THS_A       0x3A
35
#define LSM303_TIME_LIMIT_A      0x3B
36
#define LSM303_TIME_LATENCY_A    0x3C
37
#define LSM303_TIME_WINDOW_A     0x3D
38
 
39
#define LSM303_CRA_REG_M         0x00
40
#define LSM303_CRB_REG_M         0x01
41
#define LSM303_MR_REG_M          0x02
42
 
43
#define LSM303_OUT_X_H_M         0x03
44
#define LSM303_OUT_X_L_M         0x04
45
#define LSM303_OUT_Y_H_M         0x05
46
#define LSM303_OUT_Y_L_M         0x06
47
#define LSM303_OUT_Z_H_M         0x07
48
#define LSM303_OUT_Z_L_M         0x08
49
 
50
#define LSM303_SR_REG_M          0x09
51
#define LSM303_IRA_REG_M         0x0A
52
#define LSM303_IRB_REG_M         0x0B
53
#define LSM303_IRC_REG_M         0x0C
54
 
55
#define LSM303_TEMP_OUT_H_M      0x31
56
#define LSM303_TEMP_OUT_L_M      0x32
57
 
58
#define LSM303DLH_OUT_Y_H_M      0x05
59
#define LSM303DLH_OUT_Y_L_M      0x06
60
#define LSM303DLH_OUT_Z_H_M      0x07
61
#define LSM303DLH_OUT_Z_L_M      0x08
62
 
63
#define LSM303DLM_OUT_Z_H_M      0x05
64
#define LSM303DLM_OUT_Z_L_M      0x06
65
#define LSM303DLM_OUT_Y_H_M      0x07
66
#define LSM303DLM_OUT_Y_L_M      0x08
67
 
68
#define LSM303DLHC_OUT_Z_H_M     0x05
69
#define LSM303DLHC_OUT_Z_L_M     0x06
70
#define LSM303DLHC_OUT_Y_H_M     0x07
71
#define LSM303DLHC_OUT_Y_L_M     0x08
72
 
73
typedef enum {
74
    accGain_2 = 0x00,
75
    accGain_4 = 0x10,
76
    accGain_8 = 0x20,
77
    accGain_16 = 0x30
78
} accGain;
79
 
80
typedef enum {
81
    magGain_13 = 0x20,
82
    magGain_19 = 0x40,
83
    magGain_25 = 0x60,
84
    magGain_40 = 0x80,
85
    magGain_47 = 0xA0,
86
    magGain_56 = 0xC0,
87
    magGain_81 = 0xE0
88
} magGain;
89
 
90
void LSM303_Init(void);
91
void LSM303_Set_Mag_Gain(magGain value);
92
void LSM303_Read_Accl(char *x_L, char *x_H,
93
                      char *y_L, char *y_H,
94
                      char *z_L, char *z_H);
95
void LSM303_Read_Magn(char *x_L, char *x_H,
96
                      char *y_L, char *y_H,
97
                      char *z_L, char *z_H);
98
 
99
#endif	/* LSM303_H */
100