Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
159 Kevin 1
#ifndef GYRO_L3G_H
2
#define	GYRO_L3G_H
3
 
4
// Device Types
5
#define L3G4200D_DEVICE 0
6
#define L3GD20_DEVICE   1
7
 
8
// SA0 States
9
#define L3G_SA0_LOW  0
10
#define L3G_SA0_HIGH 1
11
 
12
// Slave Addresses
13
#define L3G4200D_ADDRESS_SA0_LOW  (0xD0 >> 1)
14
#define L3G4200D_ADDRESS_SA0_HIGH (0xD2 >> 1)
15
#define L3GD20_ADDRESS_SA0_LOW    (0xD4 >> 1)
16
#define L3GD20_ADDRESS_SA0_HIGH   (0xD6 >> 1)
17
 
18
// Register Addresses
19
#define L3G_WHO_AM_I      0x0F
20
 
21
#define L3G_CTRL_REG1     0x20
22
#define L3G_CTRL_REG2     0x21
23
#define L3G_CTRL_REG3     0x22
24
#define L3G_CTRL_REG4     0x23
25
#define L3G_CTRL_REG5     0x24
26
#define L3G_REFERENCE     0x25
27
#define L3G_OUT_TEMP      0x26
28
#define L3G_STATUS_REG    0x27
29
 
30
#define L3G_OUT_X_L       0x28
31
#define L3G_OUT_X_H       0x29
32
#define L3G_OUT_Y_L       0x2A
33
#define L3G_OUT_Y_H       0x2B
34
#define L3G_OUT_Z_L       0x2C
35
#define L3G_OUT_Z_H       0x2D
36
 
37
#define L3G_FIFO_CTRL_REG 0x2E
38
#define L3G_FIFO_SRC_REG  0x2F
39
 
40
#define L3G_INT1_CFG      0x30
41
#define L3G_INT1_SRC      0x31
42
#define L3G_INT1_THS_XH   0x32
43
#define L3G_INT1_THS_XL   0x33
44
#define L3G_INT1_THS_YH   0x34
45
#define L3G_INT1_THS_YL   0x35
46
#define L3G_INT1_THS_ZH   0x36
47
#define L3G_INT1_THS_ZL   0x37
48
#define L3G_INT1_DURATION 0x38
49
 
50
typedef struct {
51
    char address;
52
} L3G_DATA;
53
 
54
void L3G_Init(L3G_DATA *data, char device, char sa0);
55
void L3G_Begin(void);
56
void L3G_Read(int *x, int *y, int *z);
57
 
58
#endif
59