summaryrefslogtreecommitdiff
path: root/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions
diff options
context:
space:
mode:
authorjaseg <git@jaseg.net>2020-10-14 12:47:28 +0200
committerjaseg <git@jaseg.net>2020-10-14 12:47:28 +0200
commit6ab94e0b318884bbcb95e2ea3835f951502e1d99 (patch)
tree4cc5794b89f89c55ff8370ae252518ab96b5fed3 /midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions
parent1e6e8a2062923b434b2f4f5f2a9f8c0098135b01 (diff)
downloadminikbd-6ab94e0b318884bbcb95e2ea3835f951502e1d99.tar.gz
minikbd-6ab94e0b318884bbcb95e2ea3835f951502e1d99.tar.bz2
minikbd-6ab94e0b318884bbcb95e2ea3835f951502e1d99.zip
Move firmware into subdirectory
Diffstat (limited to 'midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions')
-rw-r--r--midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/pid.c97
-rw-r--r--midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/sin_cos.c21
2 files changed, 0 insertions, 118 deletions
diff --git a/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/pid.c b/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/pid.c
deleted file mode 100644
index 51aa633..0000000
--- a/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/pid.c
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "ref.h"
-
-float32_t ref_pid_f32(
- arm_pid_instance_f32 * S,
- float32_t in)
-{
- float32_t out;
-
- /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */
- out = S->state[2] + S->A0 * in + S->A1 * S->state[0] + S->A2 * S->state[1];
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
-}
-
-q31_t ref_pid_q31(
- arm_pid_instance_q31 * S,
- q31_t in)
-{
- q63_t acc;
- q31_t out;
-
- /* acc = A0 * x[n] */
- acc = (q63_t) S->A0 * in;
-
- /* acc += A1 * x[n-1] */
- acc += (q63_t) S->A1 * S->state[0];
-
- /* acc += A2 * x[n-2] */
- acc += (q63_t) S->A2 * S->state[1];
-
- /* convert output to 1.31 format to add y[n-1] */
- out = (q31_t) (acc >> 31U);
-
- /* out += y[n-1] */
- out += S->state[2];
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
-}
-
-q15_t ref_pid_q15(
- arm_pid_instance_q15 * S,
- q15_t in)
-{
- q63_t acc;
- q15_t out;
- q15_t A1, A2;
-
-#if defined (ARM_MATH_DSP)
-
-#ifndef ARM_MATH_BIG_ENDIAN
- A2 = S->A1 >> 16;
- A1 = (q15_t)S->A1;
-#else
- A1 = S->A1 >> 16;
- A2 = (q15_t)S->A1;
-#endif
-
-#else
-
- A1 = S->A1;
- A2 = S->A2;
-
-#endif
-
- /* acc = A0 * x[n] */
- acc = ((q31_t) S->A0) * in;
-
- /* acc += A1 * x[n-1] + A2 * x[n-2] */
- acc += (q31_t) A1 * S->state[0];
- acc += (q31_t) A2 * S->state[1];
-
- /* acc += y[n-1] */
- acc += (q31_t) S->state[2] << 15;
-
- /* saturate the output */
- out = ref_sat_q15(acc >> 15);
-
- /* Update state */
- S->state[1] = S->state[0];
- S->state[0] = in;
- S->state[2] = out;
-
- /* return to application */
- return (out);
-}
diff --git a/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/sin_cos.c b/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/sin_cos.c
deleted file mode 100644
index 22c91a0..0000000
--- a/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/RefLibs/src/ControllerFunctions/sin_cos.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "ref.h"
-
-void ref_sin_cos_f32(
- float32_t theta,
- float32_t * pSinVal,
- float32_t * pCosVal)
-{
- //theta is given in degrees
- *pSinVal = sinf(theta * 6.28318530717959f / 360.0f);
- *pCosVal = cosf(theta * 6.28318530717959f / 360.0f);
-}
-
-void ref_sin_cos_q31(
- q31_t theta,
- q31_t * pSinVal,
- q31_t * pCosVal)
-{
- //theta is given in the range [-1,1) to represent [-pi,pi)
- *pSinVal = (q31_t)(sinf((float32_t)theta * 3.14159265358979f / 2147483648.0f) * 2147483648.0f);
- *pCosVal = (q31_t)(cosf((float32_t)theta * 3.14159265358979f / 2147483648.0f) * 2147483648.0f);
-}