Ian Hua / Quadcopter-mbedRTOS
Committer:
pHysiX
Date:
Mon May 12 05:12:19 2014 +0000
Revision:
31:3dde2201e54d
Parent:
30:d9b988f8d84f
Child:
33:f88a6ee18103
Rearranged threads and approach

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pHysiX 27:18b6580eb0b1 1 /* File: Task2_Master.cpp
pHysiX 27:18b6580eb0b1 2 * Author: Trung Tin Ian HUA
pHysiX 27:18b6580eb0b1 3 * Date: May 2014
pHysiX 31:3dde2201e54d 4 * Purpose: Thread2M: Master PID control loop (attitude)
pHysiX 30:d9b988f8d84f 5 * Settings: 100Hz
pHysiX 30:d9b988f8d84f 6 * Timing: 40us
pHysiX 27:18b6580eb0b1 7 */
pHysiX 27:18b6580eb0b1 8 #include "Task2_Slave.h"
pHysiX 27:18b6580eb0b1 9 #include "setup.h"
pHysiX 27:18b6580eb0b1 10 #include "PID.h"
pHysiX 27:18b6580eb0b1 11
pHysiX 27:18b6580eb0b1 12 /* YPR Adjust */
pHysiX 27:18b6580eb0b1 13
pHysiX 27:18b6580eb0b1 14 volatile float adjust_attitude[3] = {0.0, 0.0, 0.0};
pHysiX 27:18b6580eb0b1 15
pHysiX 27:18b6580eb0b1 16 //bool counterTask2Master = false;
pHysiX 27:18b6580eb0b1 17
pHysiX 31:3dde2201e54d 18 //Timer
pHysiX 27:18b6580eb0b1 19 void Task2_Master(void const *argument)
pHysiX 27:18b6580eb0b1 20 {
pHysiX 31:3dde2201e54d 21 //Timer
pHysiX 30:d9b988f8d84f 22 if (armed) {
pHysiX 30:d9b988f8d84f 23 switch (mode) {
pHysiX 30:d9b988f8d84f 24 case RATE:
pHysiX 30:d9b988f8d84f 25 break;
pHysiX 28:aa72bd4ff103 26
pHysiX 30:d9b988f8d84f 27 case ATTITUDE:
pHysiX 30:d9b988f8d84f 28 default:
pHysiX 31:3dde2201e54d 29 //Timer
pHysiX 31:3dde2201e54d 30 AHRSSample();
pHysiX 30:d9b988f8d84f 31
pHysiX 31:3dde2201e54d 32 pitchPIDstable.setProcessValue((int) (ypr[1] - ypr_offset[1]));
pHysiX 31:3dde2201e54d 33 rollPIDstable.setProcessValue((int) (ypr[2] - ypr_offset[2]));
pHysiX 27:18b6580eb0b1 34
pHysiX 30:d9b988f8d84f 35 pitchPIDstable.setSetPoint(inputYPR[1]);
pHysiX 30:d9b988f8d84f 36 rollPIDstable.setSetPoint(inputYPR[2]);
pHysiX 30:d9b988f8d84f 37
pHysiX 30:d9b988f8d84f 38 adjust_attitude[1] = pitchPIDstable.compute();
pHysiX 30:d9b988f8d84f 39 adjust_attitude[2] = rollPIDstable.compute();
pHysiX 30:d9b988f8d84f 40 adjust_attitude[2] *= -1;
pHysiX 27:18b6580eb0b1 41
pHysiX 30:d9b988f8d84f 42 //counterTask2Master = true;
pHysiX 31:3dde2201e54d 43 //Timer
pHysiX 30:d9b988f8d84f 44 break;
pHysiX 30:d9b988f8d84f 45 }
pHysiX 31:3dde2201e54d 46 //Timer
pHysiX 27:18b6580eb0b1 47 }
pHysiX 27:18b6580eb0b1 48 }