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@33:f88a6ee18103, 2014-05-12 (annotated)
- Committer:
- pHysiX
- Date:
- Mon May 12 13:49:43 2014 +0000
- Revision:
- 33:f88a6ee18103
- Parent:
- 31:3dde2201e54d
- Child:
- 34:228d87c45151
Tidied code
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 | 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 | volatile float adjust_attitude[3] = {0.0, 0.0, 0.0}; |
pHysiX | 27:18b6580eb0b1 | 14 | |
pHysiX | 31:3dde2201e54d | 15 | //Timer |
pHysiX | 27:18b6580eb0b1 | 16 | void Task2_Master(void const *argument) |
pHysiX | 27:18b6580eb0b1 | 17 | { |
pHysiX | 31:3dde2201e54d | 18 | //Timer |
pHysiX | 30:d9b988f8d84f | 19 | if (armed) { |
pHysiX | 30:d9b988f8d84f | 20 | switch (mode) { |
pHysiX | 30:d9b988f8d84f | 21 | case RATE: |
pHysiX | 30:d9b988f8d84f | 22 | break; |
pHysiX | 28:aa72bd4ff103 | 23 | |
pHysiX | 30:d9b988f8d84f | 24 | case ATTITUDE: |
pHysiX | 30:d9b988f8d84f | 25 | default: |
pHysiX | 31:3dde2201e54d | 26 | //Timer |
pHysiX | 31:3dde2201e54d | 27 | AHRSSample(); |
pHysiX | 30:d9b988f8d84f | 28 | |
pHysiX | 31:3dde2201e54d | 29 | pitchPIDstable.setProcessValue((int) (ypr[1] - ypr_offset[1])); |
pHysiX | 31:3dde2201e54d | 30 | rollPIDstable.setProcessValue((int) (ypr[2] - ypr_offset[2])); |
pHysiX | 27:18b6580eb0b1 | 31 | |
pHysiX | 30:d9b988f8d84f | 32 | pitchPIDstable.setSetPoint(inputYPR[1]); |
pHysiX | 30:d9b988f8d84f | 33 | rollPIDstable.setSetPoint(inputYPR[2]); |
pHysiX | 30:d9b988f8d84f | 34 | |
pHysiX | 30:d9b988f8d84f | 35 | adjust_attitude[1] = pitchPIDstable.compute(); |
pHysiX | 30:d9b988f8d84f | 36 | adjust_attitude[2] = rollPIDstable.compute(); |
pHysiX | 30:d9b988f8d84f | 37 | adjust_attitude[2] *= -1; |
pHysiX | 27:18b6580eb0b1 | 38 | |
pHysiX | 30:d9b988f8d84f | 39 | //counterTask2Master = true; |
pHysiX | 31:3dde2201e54d | 40 | //Timer |
pHysiX | 30:d9b988f8d84f | 41 | break; |
pHysiX | 30:d9b988f8d84f | 42 | } |
pHysiX | 31:3dde2201e54d | 43 | //Timer |
pHysiX | 27:18b6580eb0b1 | 44 | } |
pHysiX | 27:18b6580eb0b1 | 45 | } |
pHysiX | 33:f88a6ee18103 | 46 | |
pHysiX | 33:f88a6ee18103 | 47 | // ======================== |
pHysiX | 33:f88a6ee18103 | 48 | // === Helper functions === |
pHysiX | 33:f88a6ee18103 | 49 | // ======================== |