int main(int argc, char **argv) { sys_init(); i2c_init(); lsm303dlhc_init(); L: update_acc(); step(); sys_step(); goto L; }
int main(void) { lsm303dlhc_t dev; int16_t temp_value; lsm303dlhc_3d_data_t mag_value; lsm303dlhc_3d_data_t acc_value; puts("LSM303DLHC temperature test application\n"); printf("Initializing LSM303DLHC sensor at I2C_%i... ", TEST_LSM303DLHC_I2C); if (lsm303dlhc_init(&dev, TEST_LSM303DLHC_I2C, TEST_LSM303DLHC_ACC_PIN, TEST_LSM303DLHC_MAG_PIN, TEST_LSM303DLHC_ACC_ADDR, ACC_S_RATE, ACC_SCALE, TEST_LSM303DLHC_MAG_ADDR, MAG_S_RATE, MAG_GAIN) == 0) { puts("[OK]\n"); } else { puts("[Failed]"); return 1; } while (1) { if (lsm303dlhc_read_acc(&dev, &acc_value) == 0) { printf("Accelerometer x: %i y: %i z: %i\n", acc_value.x_axis, acc_value.y_axis, acc_value.z_axis); } else { puts("\nFailed reading accelerometer values\n"); } if (lsm303dlhc_read_temp(&dev, &temp_value) == 0) { printf("Temperature value: %i degrees\n", temp_value); } else { puts("\nFailed reading value\n"); } if (lsm303dlhc_read_mag(&dev, &mag_value) == 0) { printf("Magnetometer x: %i y: %i z: %i\n", mag_value.x_axis, mag_value.y_axis, mag_value.z_axis); } else { puts("\nFailed reading magnetometer values\n"); } vtimer_usleep(SLEEP); } return 0; }
void _get_lsm303dlhc_init_handler(int argc, char **argv) { (void)argc; (void)argv; uint8_t error; error = lsm303dlhc_init(&lsm303_dev, LSM303DLHC_I2C, LSM303DLHC_INT1, LSM303DLHC_DRDY, LSM303DLHC_ACC_ADDR, ACC_S_RATE, ACC_SCALE, LSM303DLHC_MAG_ADDR, MAG_S_RATE, MAG_GAIN); if (error) { puts("Error initializing lsm303dlhc sensor."); } else { puts("Initialized lsm303dlhc sensor with default values"); } }
int main() { GPIO_InitTypeDef GPIO_InitDef; SystemClock_Config(); SystemCoreClockUpdate(); HAL_Init(); /* driver init */ lsm303dlhc_init(); l3gd20_init(); osKernelInitialize(); Init_Timers(); handlerThread_id = osThreadCreate(osThread(handlerThread), NULL); gyroHandlerThread_id = osThreadCreate(osThread(gyroHandlerThread), NULL); visioThread_id = osThreadCreate(osThread(visioThread), NULL); accelBuffer_mutex_id = osMutexCreate(osMutex(accelBuffer_mutex)); gyroBuffer_mutex_id = osMutexCreate(osMutex(gyroBuffer_mutex)); // enable clock for GPIOE //__HAL_RCC_GPIOE_CLK_ENABLE(); // init GPIO pin GPIO_InitDef.Pin = GPIO_PIN_9; GPIO_InitDef.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitDef.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOE, &GPIO_InitDef); // set LD3 HAL_GPIO_WritePin(GPIOE, GPIO_PIN_9, GPIO_PIN_SET); osKernelStart(); }
/**@brief Application main function. */ int main(void) { uint32_t err_code; bool erase_bonds = false; sI2Cchannel i2cChannel; int16_t acc[3]; int16_t mag[3]; // bool erase_bonds; uint16_t heading; // SEGGER_RTT_WriteString(0, "Hello World 3!\n"); // Initialize app_trace_init(); app_trace_log( "test trace log\r\n" ); printf( "Hej, printf!\n" ); timers_init(); // buttons_leds_init(&erase_bonds); erl_ble_init( erase_bonds, lns_error_handler, sleep_mode_enter ); // sim_init(); // Start out slow, at 100 kbps. Keep it simple - blocking - to start nrf51822_app_i2c_init( &i2cChannel, NRF_TWI_FREQ_400K, APP_IRQ_PRIORITY_LOW, 1, 0 ); // SEGGER_RTT_WriteString(0, "i2c initialized\n"); lsm303dlhc_init( &i2cChannel ); // Test tilt compensation acc[0] = 20000; acc[1] = 2; acc[2] = 999; mag[0] = -408; mag[1] = -297; mag[2] = 237; heading = lsm303dlhc_tilt_compensate( acc, mag ); heading = ((uint32_t) heading) * 360 / UINT16_MAX; printf( "Test heading: %d\n", heading ); lsm303dlhc_acc_setDataRate( ACC_RATE_1_HZ ); lsm303dlhc_mag_setMode( LSM303DLHC_MAG_MODE_CONTINUOUS ); lsm303dlhc_acc_read( acc ); lsm303dlhc_mag_read( mag ); printf( "Acc: %d,%d,%d\n", acc[0], acc[1], acc[2] ); printf( "Mag: %d,%d,%d\n", mag[0], mag[1], mag[2] ); // Start execution // application_timers_start(); // Move this function call to erl_bleng // why is fast/slow specified here, when it is also enabled/disabled in advertising options? err_code = ble_advertising_start(BLE_ADV_MODE_SLOW); // changed from fast to slow APP_ERROR_CHECK(err_code); #if USE_BSP err_code = bsp_indication_set(BSP_INDICATE_ADVERTISING); APP_ERROR_CHECK(err_code); #endif APPL_LOG( "main(): before loop\r\n" ); // Enter main loop for (;;) { lsm303dlhc_acc_read( acc ); lsm303dlhc_mag_read( mag ); heading = lsm303dlhc_tilt_compensate( acc, mag ); heading = ((uint32_t) heading) * 36000 / UINT16_MAX; printf( "Acc: %d,%d,%d\n", acc[0], acc[1], acc[2] ); printf( "Mag: %d,%d,%d\n", mag[0], mag[1], mag[2] ); printf( "Heading=%d\n", heading ); m_sim_location_speed.heading = heading; // ++; err_code = ble_lns_loc_speed_send(&m_lns); if ( (err_code != NRF_ERROR_INVALID_STATE) && (err_code != BLE_ERROR_NO_TX_BUFFERS) && (err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING) ) { APP_ERROR_CHECK(err_code); } nrf_delay_ms( 500 ); // fflush( stdout ); // power_manage(); } }