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_Master.cpp@27:18b6580eb0b1, 2014-05-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |