JustPaste.it

/**
* @brief Function for setting active mode on MMA7660 accelerometer.
*/
void MM865_set_mode(void)
{
ret_code_t err_code;
NRF_LOG_INFO("\r\n set accl\r\n");
NRF_LOG_FLUSH();

// setup control reg 1
// bits 7:6 auto wake
// bits 5:3 data rate (0 is 800Hz up to 7 being 1.56Hz)
// bit 1 Fast read (8 bit fast read or full 12 bits)
// bit 0 sets mode (0 is default standby and can configure, 1 is active)
uint8_t reg[2] = {MM865_CTRL_REG1, 0x00}; //standby to configure
err_code = nrf_drv_twi_tx(&m_twi, MM865_ADDR, reg, sizeof(reg), false);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);

reg[0] = 0x09; // F_SETUP register
reg[1] = 0x00; // set no FIFO
m_xfer_done = false;
err_code = nrf_drv_twi_tx(&m_twi, MM865_ADDR, reg, sizeof(reg), false);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);

reg[0] = 0x0E; // XYZ_DATA_CFG register
reg[1] = 0x02; // set 8G full range mode
m_xfer_done = false;
err_code = nrf_drv_twi_tx(&m_twi, MM865_ADDR, reg, sizeof(reg), false);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);

reg[0] = MM865_CTRL_REG1; // CTRL_REG1 register
reg[1] = 0x33; // set no auto wake, 50Hz, fast 8-bit resolution
// not sure why arduino has different bit position for this
// but I'm trusting the data sheet
m_xfer_done = false;
err_code = nrf_drv_twi_tx(&m_twi, MM865_ADDR, reg, sizeof(reg), false);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);
}

/**
* @brief Function for setting temperature sensor
*/
void LM75B_set_mode(void)
{
ret_code_t err_code;

NRF_LOG_INFO("\r\n set temp\r\n");
NRF_LOG_FLUSH();

/* Writing to LM75B_REG_CONF "0" set temperature sensor in NORMAL mode. */
uint8_t reg[2] = {LM75B_REG_CONF, NORMAL_MODE};
err_code = nrf_drv_twi_tx(&m_twi, LM75B_ADDR, reg, sizeof(reg), false);
APP_ERROR_CHECK(err_code);
while (m_xfer_done == false);

// /* Writing to pointer byte. */
// reg[0] = LM75B_REG_TEMP;
// m_xfer_done = false;
// err_code = nrf_drv_twi_tx(&m_twi, LM75B_ADDR, reg, 1, false);
// APP_ERROR_CHECK(err_code);
// while (m_xfer_done == false);
}