Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
113 Kevin 1
#include "maindefs.h"
2
#include "imu.h"
3
#include "i2c.h"
4
 
5
void imu_init() {
6
    imu_gyro_init();
7
    imu_acc_init();
8
}
9
 
10
void imu_acc_init() {
11
    unsigned char toSend[2];
12
    toSend[0] = LSM303_CTRL_REG1_A;
13
    toSend[1] = 0x27;
14
    i2c_master_send(ACC_ADDRESS >> 1, 2, toSend);
15
    while(i2c_master_busy());
16
}
17
 
18
void imu_gyro_init() {
19
    unsigned char toSend[2];
20
    toSend[0] = L3G4200D_CTRL_REG1;
21
    toSend[1] = 0x0F;
22
    i2c_master_send(GYR_ADDRESS >> 1, 2, toSend);
23
    while(i2c_master_busy());
24
}
25
 
26
void imu_read_acc() {
27
    unsigned char toSend[1];
28
    toSend[0] = LSM303_OUT_X_L_A | 0x80;
29
    i2c_master_send(ACC_ADDRESS >> 1, 1, toSend);
30
    while(i2c_master_busy());
31
    i2c_master_recv(ACC_ADDRESS >> 1, 6);
32
    while(i2c_master_busy());
33
}
34
 
35
void imu_read_gyro() {
36
    unsigned char toSend[1];
37
    toSend[0] = L3G4200D_OUT_X_L | 0x80;
38
    i2c_master_send(GYR_ADDRESS >> 1, 1, toSend);
39
    while(i2c_master_busy());
40
    i2c_master_recv(GYR_ADDRESS >> 1, 6);
41
    while(i2c_master_busy());
42
}