Ian Hua / Quadcopter-mbedRTOS

RTOS-Threads/src/Task2_Master.cpp

Committer:
pHysiX
Date:
2014-05-12
Revision:
34:228d87c45151
Parent:
33:f88a6ee18103
Child:
36:d95e3d6f2fc4

File content as of revision 34:228d87c45151:

/* File:        Task2_Master.cpp
 * Author:      Trung Tin Ian HUA
 * Date:        May 2014
 * Purpose:     Thread2M: Master PID control loop (attitude)
 * Settings:    100Hz
 * Timing:      40us
 */
#include "Task2_Slave.h"
#include "setup.h"
#include "PID.h"

/* YPR Adjust */
volatile float adjust_attitude[3] = {0.0, 0.0, 0.0};



// ===============================
// === YPR SAMPLE & MASTER PID ===
// ===============================
//Timer
void Task2_Master(void const *argument)
{
//Timer
    if (armed) {
        switch (mode) {
            case RATE:
                break;

            case ATTITUDE:
            default:
//Timer
                AHRSSample();

                pitchPIDstable.setProcessValue((int) (ypr[1] - ypr_offset[1]));
                rollPIDstable.setProcessValue((int) (ypr[2] - ypr_offset[2]));

                pitchPIDstable.setSetPoint(inputYPR[1]);
                rollPIDstable.setSetPoint(inputYPR[2]);

                adjust_attitude[1] = pitchPIDstable.compute();
                adjust_attitude[2] = rollPIDstable.compute();
                adjust_attitude[2] *= -1;

                //counterTask2Master = true;
//Timer
                break;
        }
//Timer
    }
}

// ************************
// *** Helper functions ***
// ************************