void LSM303DLHCAccel_task(void) { // Init I2C initI2C0(); float fAccel[3]; tI2CMInstance sI2CInst; tLSM303DLHCAccel sLSM303DLHCAccel; // // Initialize the LSM303DLHCAccel. This code assumes that the I2C master // instance has already been initialized. // g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelInit(&sLSM303DLHCAccel, &sI2CInst, 0x19, LSM303DLHCAccelCallback, 0); while(!g_bLSM303DLHCAccelDone){} // Configure for 400Hz operation g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelReadModifyWrite(&sLSM303DLHCAccel, LSM303DLHC_O_CTRL1, LSM303DLHC_CTRL1_ODR_M, LSM303DLHC_CTRL1_ODR_400HZ, LSM303DLHCAccelCallback, 0); // // Configure on board HP filter. ft = fsamp / (6 * HPc) where HPc is the value // For Fsamp = 100Hz, 00 = 2Hz, 01 = 1Hz, 10 = 1/2Hz, 11 = 0.25Hz // g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelReadModifyWrite(&sLSM303DLHCAccel, LSM303DLHC_O_CTRL2, LSM303DLHC_CTRL2_HPCUTOFF_M, 0x3, LSM303DLHCAccelCallback, 0); // HPF mode selection - Normal Mode g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelReadModifyWrite(&sLSM303DLHCAccel, LSM303DLHC_O_CTRL2, LSM303DLHC_CTRL2_HPMODE_M, LSM303DLHC_CTRL2_HPMODE_NORMAL, LSM303DLHCAccelCallback, 0); // Filtered Data Selection - Filter enabled g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelReadModifyWrite(&sLSM303DLHCAccel, LSM303DLHC_O_CTRL2, LSM303DLHC_CTRL2_FDS_M, LSM303DLHC_CTRL2_FDS_FILTERED, LSM303DLHCAccelCallback, 0); // Configure the LSM303DLHCAccel for +/- 4 g accelerometer range. g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelReadModifyWrite(&sLSM303DLHCAccel, LSM303DLHC_O_CTRL4, ~LSM303DLHC_CTRL4_FS_M, LSM303DLHC_CTRL4_FS_4G, LSM303DLHCAccelCallback, 0); while(!g_bLSM303DLHCAccelDone){} // Enter the task while(1) { // Request another reading from the LSM303DLHCAccel. g_bLSM303DLHCAccelDone = false; LSM303DLHCAccelDataRead(&sLSM303DLHCAccel, LSM303DLHCAccelCallback, 0); while(!g_bLSM303DLHCAccelDone){} // Get the new accelerometer readings. LSM303DLHCAccelDataAccelGetFloat(&sLSM303DLHCAccel, &fAccel[0], &fAccel[1], &fAccel[2]); // Do something with the new accelerometer readings. } }
void init_RTC() { #ifdef USE_I2C_RTC initI2C0(); #else ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE); HibernateEnableExpClk(ROM_SysCtlClockGet()); HibernateClockConfig(HIBERNATE_OSC_LOWDRIVE); HibernateRTCEnable(); updateTime(); init_limits_rtc(); #endif }
void init_ADXL345_Accelerometer(){ initI2C0(); }