SPI slave program to enable communication between the FPGA and the STM32L432 board.

Dependencies:   mbed

Committer:
Zbyszek
Date:
Sat Feb 23 01:20:08 2019 +0000
Revision:
4:e36c7042d3bb
Child:
5:155d224d855c
-Added quaternion integration; -added accel based angle calculations

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Zbyszek 4:e36c7042d3bb 1 typedef struct {
Zbyszek 4:e36c7042d3bb 2 double w;
Zbyszek 4:e36c7042d3bb 3 double x;
Zbyszek 4:e36c7042d3bb 4 double y;
Zbyszek 4:e36c7042d3bb 5 double z;
Zbyszek 4:e36c7042d3bb 6 } Quaternion;
Zbyszek 4:e36c7042d3bb 7
Zbyszek 4:e36c7042d3bb 8 typedef struct {
Zbyszek 4:e36c7042d3bb 9 double roll;
Zbyszek 4:e36c7042d3bb 10 double pitch;
Zbyszek 4:e36c7042d3bb 11 double yaw;
Zbyszek 4:e36c7042d3bb 12 } Rotation;
Zbyszek 4:e36c7042d3bb 13
Zbyszek 4:e36c7042d3bb 14 typedef struct {
Zbyszek 4:e36c7042d3bb 15 double x;
Zbyszek 4:e36c7042d3bb 16 double y;
Zbyszek 4:e36c7042d3bb 17 double z;
Zbyszek 4:e36c7042d3bb 18 } vector;
Zbyszek 4:e36c7042d3bb 19
Zbyszek 4:e36c7042d3bb 20
Zbyszek 4:e36c7042d3bb 21 //-----------------------------Functions--------------------------------------//
Zbyszek 4:e36c7042d3bb 22 Quaternion toQuaternionNotation(vector AngularRate, double dt);
Zbyszek 4:e36c7042d3bb 23 Quaternion getQuaternionProduct(Quaternion previousQ, Quaternion deltaQ);
Zbyszek 4:e36c7042d3bb 24 Quaternion quaternionConjugate(Quaternion Q);
Zbyszek 4:e36c7042d3bb 25 Quaternion updateQuaternion(Quaternion Qprevious, vector angularRate, double deltaTime);
Zbyszek 4:e36c7042d3bb 26 vector quaternion2Vector(Quaternion Q);
Zbyszek 4:e36c7042d3bb 27 Quaternion vector2Quaternion(vector v);
Zbyszek 4:e36c7042d3bb 28 vector rotateVector(Quaternion Q, vector v);
Zbyszek 4:e36c7042d3bb 29 Quaternion normaliseQuaternion(Quaternion Q);
Zbyszek 4:e36c7042d3bb 30 double getQuaternionNorm(Quaternion Q);
Zbyszek 4:e36c7042d3bb 31 Quaternion getQaDelta(Quaternion Q);
Zbyszek 4:e36c7042d3bb 32 vector crossProduct(vector v1, vector v2);
Zbyszek 4:e36c7042d3bb 33 Quaternion sumQuaternion(Quaternion Q1, Quaternion Q2);
Zbyszek 4:e36c7042d3bb 34 vector sumVector(vector v1, vector v2);
Zbyszek 4:e36c7042d3bb 35 Quaternion getQVproduct(Quaternion Q, vector v);
Zbyszek 4:e36c7042d3bb 36 vector rotateGlobal(vector v1, Quaternion Q);
Zbyszek 4:e36c7042d3bb 37 vector rotateLocal(vector v1, Quaternion Q);
Zbyszek 4:e36c7042d3bb 38 vector mul(float a, vector v);
Zbyszek 4:e36c7042d3bb 39 vector eulerA(Quaternion Q);
Zbyszek 4:e36c7042d3bb 40
Zbyszek 4:e36c7042d3bb 41
Zbyszek 4:e36c7042d3bb 42 Quaternion toQuaternionNotation123(vector AngularRate, double dt);
Zbyszek 4:e36c7042d3bb 43 //-----------------------------Functions--------------------------------------//