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.
Transforms/Transforms.cpp@1:b8bceb4daed5, 2016-02-05 (annotated)
- Committer:
 - benkatz
 - Date:
 - Fri Feb 05 01:04:57 2016 +0000
 - Revision:
 - 1:b8bceb4daed5
 - Parent:
 - 0:4e1c4df6aabd
 - Child:
 - 5:51c6560bf624
 
Added some comments, cleaned things up a bit
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| benkatz | 0:4e1c4df6aabd | 1 | #include "mbed.h" | 
| benkatz | 0:4e1c4df6aabd | 2 | #include "Transforms.h" | 
| benkatz | 0:4e1c4df6aabd | 3 | #include "FastMath.h" | 
| benkatz | 0:4e1c4df6aabd | 4 | |
| benkatz | 0:4e1c4df6aabd | 5 | using namespace FastMath; | 
| benkatz | 0:4e1c4df6aabd | 6 | |
| benkatz | 0:4e1c4df6aabd | 7 | void Transforms::Park(float alpha, float beta, float theta, float *d, float *q){ | 
| benkatz | 0:4e1c4df6aabd | 8 | float cosine = cos(theta); | 
| benkatz | 0:4e1c4df6aabd | 9 | float sine = sin(theta); | 
| benkatz | 0:4e1c4df6aabd | 10 | *d = alpha*cosine - beta*sine; | 
| benkatz | 0:4e1c4df6aabd | 11 | *q = -beta*cosine - alpha*sine; | 
| benkatz | 0:4e1c4df6aabd | 12 | //DAC->DHR12R1 = (int) (*q*49.648f) + 2048; | 
| benkatz | 0:4e1c4df6aabd | 13 | //DAC->DHR12R1 = (int) (*q*2048.0f) + 2048; | 
| benkatz | 0:4e1c4df6aabd | 14 | } | 
| benkatz | 0:4e1c4df6aabd | 15 | |
| benkatz | 0:4e1c4df6aabd | 16 | void Transforms::InvPark(float d, float q, float theta, float *alpha, float *beta){ | 
| benkatz | 0:4e1c4df6aabd | 17 | float cosine = cos(theta); | 
| benkatz | 0:4e1c4df6aabd | 18 | float sine = sin(theta); | 
| benkatz | 0:4e1c4df6aabd | 19 | *alpha = d*cosine - q*sine; | 
| benkatz | 0:4e1c4df6aabd | 20 | *beta = q*cosine + d*sine; | 
| benkatz | 0:4e1c4df6aabd | 21 | } | 
| benkatz | 0:4e1c4df6aabd | 22 | |
| benkatz | 0:4e1c4df6aabd | 23 | void Transforms::Clarke(float a, float b, float *alpha, float *beta){ | 
| benkatz | 0:4e1c4df6aabd | 24 | *alpha = a; | 
| benkatz | 0:4e1c4df6aabd | 25 | *beta = 0.57735026919f*(a + 2.0f*b); | 
| benkatz | 0:4e1c4df6aabd | 26 | } | 
| benkatz | 0:4e1c4df6aabd | 27 | |
| benkatz | 0:4e1c4df6aabd | 28 | void Transforms::InvClarke(float alpha, float beta, float *a, float *b, float *c){ | 
| benkatz | 0:4e1c4df6aabd | 29 | *a = alpha; | 
| benkatz | 0:4e1c4df6aabd | 30 | *b = 0.5f*(-alpha + 1.73205080757f*beta); | 
| benkatz | 0:4e1c4df6aabd | 31 | *c = 0.5f*(-alpha - 1.73205080757f*beta); | 
| benkatz | 0:4e1c4df6aabd | 32 | } | 
| benkatz | 0:4e1c4df6aabd | 33 |