aboutsummaryrefslogtreecommitdiffhomepage
path: root/workspace/TS100/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'workspace/TS100/src/main.cpp')
-rw-r--r--workspace/TS100/src/main.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/workspace/TS100/src/main.cpp b/workspace/TS100/src/main.cpp
index dd986967..44249442 100644
--- a/workspace/TS100/src/main.cpp
+++ b/workspace/TS100/src/main.cpp
@@ -787,17 +787,11 @@ void startPIDTask(void const *argument) {
osDelay(500);
int32_t integralCount = 0;
int32_t derivativeLastValue = 0;
- int32_t kp, ki, kd;
- ki = 50;
- kd = 15;
+
// REMEBER ^^^^ These constants are backwards
// They act as dividers, so to 'increase' a P term, you make the number
// smaller.
- if (getInputVoltageX10(systemSettings.voltageDiv) < 150) {
- //Boot P term if < 15 Volts
- kp = 30;
- } else
- kp = 42;
+
const int32_t itermMax = 100;
pidTaskNotification = xTaskGetCurrentTaskHandle();
for (;;) {
@@ -818,7 +812,7 @@ void startPIDTask(void const *argument) {
int32_t rawTempError = currentlyActiveTemperatureTarget
- rawTemp;
- int32_t ierror = (rawTempError / ki);
+ int32_t ierror = (rawTempError / ((int32_t)systemSettings.PID_I));
integralCount += ierror;
if (integralCount > (itermMax / 2))
integralCount = itermMax / 2; // prevent too much lead
@@ -828,11 +822,11 @@ void startPIDTask(void const *argument) {
int32_t dInput = (rawTemp - derivativeLastValue);
/*Compute PID Output*/
- int32_t output = (rawTempError / kp);
- if (ki)
+ int32_t output = (rawTempError / ((int32_t)systemSettings.PID_P));
+ if (((int32_t)systemSettings.PID_I))
output += integralCount;
- if (kd)
- output -= (dInput / kd);
+ if (((int32_t)systemSettings.PID_D))
+ output -= (dInput / ((int32_t)systemSettings.PID_D));
if (output > 100) {
output = 100; // saturate
@@ -968,6 +962,7 @@ void startMOVTask(void const *argument) {
bool showBootLogoIfavailable() {
// check if the header is there (0xAA,0x55,0xF0,0x0D)
// If so display logo
+ //TODO REDUCE STACK ON THIS ONE, USE DRAWING IN THE READ LOOP
uint16_t temp[98];
for (uint8_t i = 0; i < (98); i++) {