Ian Hua / Quadcopter-mbedRTOS
Committer:
pHysiX
Date:
Sat May 10 01:39:02 2014 +0000
Revision:
27:18b6580eb0b1
Parent:
26:4a3323ee36d5
Child:
28:aa72bd4ff103
Alternative1: Run Master only when YPR is updated

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 27:18b6580eb0b1 4 * Purpose: Thread2: Gyro sample and PID Control loop
pHysiX 27:18b6580eb0b1 5 * Settings: 200Hz
pHysiX 27:18b6580eb0b1 6 */
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 27:18b6580eb0b1 18 void Task2_Master(void const *argument)
pHysiX 27:18b6580eb0b1 19 {
pHysiX 27:18b6580eb0b1 20 switch (mode) {
pHysiX 27:18b6580eb0b1 21 case RATE:
pHysiX 27:18b6580eb0b1 22 break;
pHysiX 27:18b6580eb0b1 23
pHysiX 27:18b6580eb0b1 24 case ATTITUDE:
pHysiX 27:18b6580eb0b1 25 default:
pHysiX 27:18b6580eb0b1 26 if (counterTask1) {
pHysiX 27:18b6580eb0b1 27 pitchPIDstable.setSetPoint(inputYPR[1]);
pHysiX 27:18b6580eb0b1 28 rollPIDstable.setSetPoint(inputYPR[2]);
pHysiX 27:18b6580eb0b1 29
pHysiX 27:18b6580eb0b1 30 pitchPIDstable.setProcessValue((int) (ypr[1] - ypr_offset[1]));
pHysiX 27:18b6580eb0b1 31 rollPIDstable.setProcessValue((int) (ypr[2] - ypr_offset[2]));
pHysiX 27:18b6580eb0b1 32
pHysiX 27:18b6580eb0b1 33 adjust_attitude[1] = pitchPIDstable.compute();
pHysiX 27:18b6580eb0b1 34 adjust_attitude[2] = rollPIDstable.compute();
pHysiX 27:18b6580eb0b1 35 adjust_attitude[2] *= -1;
pHysiX 27:18b6580eb0b1 36
pHysiX 27:18b6580eb0b1 37 counterTask1 = false;
pHysiX 27:18b6580eb0b1 38 //counterTask2Master = true;
pHysiX 27:18b6580eb0b1 39 }
pHysiX 27:18b6580eb0b1 40 break;
pHysiX 27:18b6580eb0b1 41 }
pHysiX 27:18b6580eb0b1 42 }