void Accel_Init() { compass.init(); if (compass.getDeviceType() == LSM303DLHC_DEVICE) { compass.writeAccReg(LSM303_CTRL_REG1_A, 0x47); // normal power mode, all axes enabled, 50 Hz compass.writeAccReg(LSM303_CTRL_REG4_A, 0x28); // 8 g full scale: FS = 10 on DLHC; high resolution output mode } else { compass.writeAccReg(LSM303_CTRL_REG1_A, 0x27); // normal power mode, all axes enabled, 50 Hz compass.writeAccReg(LSM303_CTRL_REG4_A, 0x30); // 8 g full scale: FS = 11 on DLH, DLM } }
void Accel_Init() { compass.init(); compass.enableDefault(); switch (compass.getDeviceType()) { case LSM303::device_D: compass.writeReg(LSM303::CTRL2, 0x18); // 8 g full scale: AFS = 011 break; case LSM303::device_DLHC: compass.writeReg(LSM303::CTRL_REG4_A, 0x28); // 8 g full scale: FS = 10; high resolution output mode break; default: // DLM, DLH compass.writeReg(LSM303::CTRL_REG4_A, 0x30); // 8 g full scale: FS = 11 } //compass.heading((LSM303::vector<int>){0, 0, -1}); //compass.m_min = (LSM303::vector<int16_t>){-2304, -2194, -2156}; //compass.m_max = (LSM303::vector<int16_t>){+2771, +2860, +2753}; }