/** \brief Função principal do módulo de IO. * @param None * @retval None * * Loop que amostra sensores como necessário. * */ void module_imu_run() { unsigned int heartBeat=0; char tmp[20]; /*Dados usados no sonar*/ float accel[3], mag[3], gyro[3]; long *ts; while(1) { /* Leitura do numero de ciclos atuais */ lastWakeTime = xTaskGetTickCount(); oInputData.heartBeat=heartBeat++; /*----------------------Tratamento da IMU---------------------*/ /* Pega e trata os valores da imu */ //c_io_imu_getRaw(oInputData.imuOutput.accRaw, oInputData.imuOutput.gyrRaw, oInputData.imuOutput.magRaw,sample_time_gyro_us); /* toggle pin for debug */ c_common_gpio_toggle(LED4); c_io_imuAdafruit_getRaw(accel,gyro,mag,ts); //imu_getRaw(accel,gyro,mag,ts); displayDataDetails(accel,mag,gyro); /* Realiza o trabalho de mutex */ //if(pv_interface_in.oInputData != 0) //xQueueOverwrite(pv_interface_in.oInputData, &oInputData); /* A thread dorme ate o tempo final ser atingido */ vTaskDelayUntil( &lastWakeTime, (MODULE_PERIOD / portTICK_RATE_MS)); } }
// `I'm alive` kind of task void blink_led_task(void *pvParameters) { while(1) { //c_io_rx24f_readPosition(0x01); //c_io_rx24f_setLed(0x01, 0x01); c_io_rx24f_move(0x01, 0); c_common_gpio_toggle(LED); vTaskDelay(500/portTICK_RATE_MS); //c_io_rx24f_readPosition(0x01); //c_io_rx24f_setLed(0x01, 0x00); c_io_rx24f_move(0x01, 10); c_common_gpio_toggle(LED); vTaskDelay(500/portTICK_RATE_MS); } }