Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
RTOS-Threads/src/Task2.cpp
- Committer:
- pHysiX
- Date:
- 2014-05-08
- Revision:
- 22:ef8aa9728013
- Parent:
- 21:b642c18eccd1
- Child:
- 24:54a8cdf17378
File content as of revision 22:ef8aa9728013:
/* File: Task2.cpp * Author: Trung Tin Ian HUA * Date: May 2014 * Purpose: Thread2: Gyro sample and PID Control loop * Settings: 200Hz */ #include "Task2.h" #include "setup.h" #include "PID.h" /* YPR Adjust */ volatile float adjust[3] = {0.0, 0.0, 0.0}; volatile float adjust_stable[3] = {0.0, 0.0, 0.0}; int16_t gx, gy, gz; volatile int gyro[3] = {0, 0, 0}; bool counterESC = false; void Task2(void const *argument) { imu.getRotation(&gx, &gy, &gz); gyro[0] = gx + 60; gyro[1] = gy - 15; gyro[2] = gz + 25; for (int i = 0; i < 3; i++) gyro[i] /= (float) 32.8; //if (counterTask1) { pitchPIDstable.setSetPoint(inputYPR[1]); rollPIDstable.setSetPoint(inputYPR[2]); pitchPIDstable.setProcessValue(ypr[1] - ypr_offset[1]); rollPIDstable.setProcessValue(ypr[2] - ypr_offset[2]); adjust_stable[1] = pitchPIDstable.compute(); adjust_stable[2] = rollPIDstable.compute(); yawPIDrate.setSetPoint(inputYPR[0]); pitchPIDrate.setSetPoint(inputYPR[1]); rollPIDrate.setSetPoint(inputYPR[2]); //pitchPIDrate.setSetPoint(adjust_stable[1]); //rollPIDrate.setSetPoint(adjust_stable[2]); yawPIDrate.setProcessValue(gyro[2]); pitchPIDrate.setProcessValue(gyro[1]); rollPIDrate.setProcessValue(gyro[0]); adjust[0] = yawPIDrate.compute(); adjust[1] = pitchPIDrate.compute(); adjust[2] = rollPIDrate.compute(); counterTask1 = false; counterESC = true; if (adjust_check) BT.printf("%3.4f %3.4f %3.4f\n", adjust[0], adjust[1], adjust[2]); if (gyro_out) BT.printf("%3d %3d %3d\n", (int) gyro[0], (int) gyro[1], (int) gyro[2]); }