aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBen V. Brown <[email protected]>2017-10-29 10:01:16 +1100
committerBen V. Brown <[email protected]>2017-10-29 10:01:16 +1100
commitfd922711217dc3316efc7fd377509a4bf9374aee (patch)
tree9915b6bc1fd1dfca348c915b2ce2d70c8b3e3fc5
parent812fbcd902a1e34c83e2617c50d137f828ed52fd (diff)
downloadIronOS-2.0-alpha.6.tar.gz
IronOS-2.0-alpha.6.zip
Patching Filter Depthv2.0-alpha.6
Fixes #115
-rw-r--r--workspace/TS100/src/hardware.c11
-rw-r--r--workspace/TS100/src/main.cpp10
2 files changed, 14 insertions, 7 deletions
diff --git a/workspace/TS100/src/hardware.c b/workspace/TS100/src/hardware.c
index 53654ad0..c29bff34 100644
--- a/workspace/TS100/src/hardware.c
+++ b/workspace/TS100/src/hardware.c
@@ -58,7 +58,7 @@ uint16_t getTipInstantTemperature() {
uint16_t getTipRawTemp(uint8_t instant) {
#define filterDepth1 1
/*Pre filter used before PID*/
-#define filterDepth2 16
+#define filterDepth2 32
/*Post filter used for UI display*/
static uint16_t filterLayer1[filterDepth1];
static uint16_t filterLayer2[filterDepth2];
@@ -92,8 +92,14 @@ uint16_t getInputVoltageX10(uint8_t divisor) {
//Therefore we can divide down from there
//Ideal term is 117
#define BATTFILTERDEPTH 64
+ static uint8_t preFillneeded = 1;
static uint32_t samples[BATTFILTERDEPTH];
static uint8_t index = 0;
+ if (preFillneeded) {
+ for (uint8_t i = 0; i < BATTFILTERDEPTH; i++)
+ samples[i] = getADC(1);
+ preFillneeded = 0;
+ }
samples[index] = getADC(1);
index = (index + 1) % BATTFILTERDEPTH;
uint32_t sum = 0;
@@ -102,7 +108,8 @@ uint16_t getInputVoltageX10(uint8_t divisor) {
sum += samples[i];
sum /= BATTFILTERDEPTH;
-
+ if (sum < 50)
+ preFillneeded = 1;
return sum / divisor;
}
uint8_t getTipPWM() {
diff --git a/workspace/TS100/src/main.cpp b/workspace/TS100/src/main.cpp
index fc41badc..6e2db273 100644
--- a/workspace/TS100/src/main.cpp
+++ b/workspace/TS100/src/main.cpp
@@ -52,7 +52,7 @@ int main(void) {
GUITaskHandle = osThreadCreate(osThread(GUITask), NULL);
/* definition and creation of PIDTask */
- osThreadDef(PIDTask, startPIDTask, osPriorityHigh, 0, 256);
+ osThreadDef(PIDTask, startPIDTask, osPriorityRealtime, 0, 256);
PIDTaskHandle = osThreadCreate(osThread(PIDTask), NULL);
/* definition and creation of ROTTask */
@@ -73,7 +73,7 @@ int main(void) {
}
}
void GUIDelay() {
- osDelay(60);
+ osDelay(50);//20Hz
}
ButtonState getButtonState() {
/*
@@ -681,7 +681,7 @@ void startGUITask(void const * argument) {
lcd.clearScreen(); //Ensure the buffer starts clean
lcd.setCursor(0, 0); //Position the cursor at the 0,0 (top left)
lcd.setFont(1); //small font
- lcd.print((char*) "V2.00a5"); //Print version number
+ lcd.print((char*) "V2.00a6"); //Print version number
lcd.setCursor(0, 8); //second line
lcd.print(__DATE__); //print the compile date
lcd.refresh();
@@ -791,8 +791,8 @@ void startPIDTask(void const * argument) {
int32_t kp, ki, kd, kb;
int32_t backoffOverflow = 0;
kp = 20;
- ki = 50;
- kd = 40;
+ ki = 40;
+ kd = 30;
kb = 0;
const int32_t itermMax = 40;
for (;;) {