static void vBaro(void* pvParameters) { static FIL f_baro_log; static char baro_str_buf[0x20]; int result; int counter = 0; LPS_init(I2C0); LPS_enable(); strcpy(baro_str_buf, "0:BARO.TAB"); { int rename_number = 1; while(true) { if (f_stat(baro_str_buf, NULL) == FR_OK) { sprintf(baro_str_buf, "0:BARO%d.TAB", rename_number); rename_number ++; continue; } break; } } LOG_INFO("Baro output is %s", baro_str_buf); result = f_open(&f_baro_log, baro_str_buf, FA_WRITE | FA_CREATE_ALWAYS); // DEBUG xTaskCreate(vIMU, (signed char*) "IMU", 512, NULL, (tskIDLE_PRIORITY + 1UL), NULL); // ENDBEBUG while (true) { float temp, alt; xSemaphoreTake(mutex_i2c, portMAX_DELAY); temp = LPS_read_data(LPS_TEMPERATURE); alt = LPS_read_data(LPS_ALTITUDE); xSemaphoreGive(mutex_i2c); if (result == FR_OK) { sprintf(baro_str_buf, "%d\t%f\t%f\n", xTaskGetTickCount(), temp, alt); f_puts(baro_str_buf, &f_baro_log); if ((counter % 50) == 0) { f_sync(&f_baro_log); } } vTaskDelay(50); counter ++; } }
int main(void) { serial_init(); pin_init(); twi_init(); sensor_calib_first(); value = 157; pwm_init(); L3G_init(1); L3G_enableDefault(); LSM303_init(1); LSM303_enableDefault(); LPS_init(1); LPS_enableDefault(); receiveready = 1; while(1 == 1) { if(receivecomplete == 1) { analise_command(); receivecomplete = 0; receiveready = 1; recvcount = 0; } if(tmr_int == 1) { control(); } } return 0; }