// Set I2C address and init I2C void FC_IMU::init() { _quaternion = FC_Quaternion(); set_clock_source(0x01); gyro_set_range(0x00); accel_set_range(0x00); set_sleep(false); set_baseline(); TIMSK2 |= (1 << TOIE2); update_sensors(); }
int lv24020lp_set(int setting, int value) { int val = 1; mutex_lock(&tuner_mtx); switch(setting) { case RADIO_SLEEP: set_sleep(value); break; case RADIO_FREQUENCY: set_frequency(value); break; case RADIO_SCAN_FREQUENCY: /* TODO: really implement this */ set_frequency(value); val = lp24020lp_tuned(); break; case RADIO_MUTE: if (value) lv24020lp_write_clear(RADIO_CTRL3, AMUTE_L); else lv24020lp_write_set(RADIO_CTRL3, AMUTE_L); break; case RADIO_REGION: { const struct fm_region_data *rd = &fm_region_data[value]; if (rd->deemphasis == 75) lv24020lp_write_set(AUDIO_CTRL2, DEEMP); else lv24020lp_write_clear(AUDIO_CTRL2, DEEMP); break; } case RADIO_FORCE_MONO: if (value) lv24020lp_write_set(STEREO_CTRL, ST_M); else lv24020lp_write_clear(STEREO_CTRL, ST_M); break; default: value = -1; } mutex_unlock(&tuner_mtx); return val; }