Michael Spencer / Smoothie

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 /**
Michael J. Spencer 2:1df0b61d3b5a 2 * Based on https://github.com/br3ttb/Arduino-PID-AutoTune-Library
Michael J. Spencer 2:1df0b61d3b5a 3 */
Michael J. Spencer 2:1df0b61d3b5a 4
Michael J. Spencer 2:1df0b61d3b5a 5 #ifndef _PID_AUTOTUNE_H
Michael J. Spencer 2:1df0b61d3b5a 6 #define _PID_AUTOTUNE_H
Michael J. Spencer 2:1df0b61d3b5a 7
Michael J. Spencer 2:1df0b61d3b5a 8 #include <stdint.h>
Michael J. Spencer 2:1df0b61d3b5a 9
Michael J. Spencer 2:1df0b61d3b5a 10 #include "Module.h"
Michael J. Spencer 2:1df0b61d3b5a 11 #include "TemperatureControl.h"
Michael J. Spencer 2:1df0b61d3b5a 12 #include "StreamOutput.h"
Michael J. Spencer 2:1df0b61d3b5a 13
Michael J. Spencer 2:1df0b61d3b5a 14 class PID_Autotuner : public Module
Michael J. Spencer 2:1df0b61d3b5a 15 {
Michael J. Spencer 2:1df0b61d3b5a 16 public:
Michael J. Spencer 2:1df0b61d3b5a 17 PID_Autotuner();
Michael J. Spencer 2:1df0b61d3b5a 18 void begin(TemperatureControl *, float, StreamOutput *, int cycles = 8);
Michael J. Spencer 2:1df0b61d3b5a 19 void abort();
Michael J. Spencer 2:1df0b61d3b5a 20
Michael J. Spencer 2:1df0b61d3b5a 21 void on_module_loaded(void);
Michael J. Spencer 2:1df0b61d3b5a 22 uint32_t on_tick(uint32_t);
Michael J. Spencer 2:1df0b61d3b5a 23 void on_idle(void *);
Michael J. Spencer 2:1df0b61d3b5a 24 void on_gcode_received(void *);
Michael J. Spencer 2:1df0b61d3b5a 25
Michael J. Spencer 2:1df0b61d3b5a 26 private:
Michael J. Spencer 2:1df0b61d3b5a 27 void finishUp();
Michael J. Spencer 2:1df0b61d3b5a 28
Michael J. Spencer 2:1df0b61d3b5a 29 TemperatureControl *t;
Michael J. Spencer 2:1df0b61d3b5a 30 float target_temperature;
Michael J. Spencer 2:1df0b61d3b5a 31 StreamOutput *s;
Michael J. Spencer 2:1df0b61d3b5a 32
Michael J. Spencer 2:1df0b61d3b5a 33 volatile bool tick;
Michael J. Spencer 2:1df0b61d3b5a 34
Michael J. Spencer 2:1df0b61d3b5a 35 float *peaks;
Michael J. Spencer 2:1df0b61d3b5a 36 int requested_cycles;
Michael J. Spencer 2:1df0b61d3b5a 37 float noiseBand;
Michael J. Spencer 2:1df0b61d3b5a 38 unsigned long peak1, peak2;
Michael J. Spencer 2:1df0b61d3b5a 39 int sampleTime;
Michael J. Spencer 2:1df0b61d3b5a 40 int nLookBack;
Michael J. Spencer 2:1df0b61d3b5a 41 int lookBackCnt;
Michael J. Spencer 2:1df0b61d3b5a 42 int peakType;
Michael J. Spencer 2:1df0b61d3b5a 43 float *lastInputs;
Michael J. Spencer 2:1df0b61d3b5a 44 int peakCount;
Michael J. Spencer 2:1df0b61d3b5a 45 bool justchanged;
Michael J. Spencer 2:1df0b61d3b5a 46 float absMax, absMin;
Michael J. Spencer 2:1df0b61d3b5a 47 float oStep;
Michael J. Spencer 2:1df0b61d3b5a 48 int output;
Michael J. Spencer 2:1df0b61d3b5a 49 unsigned long tickCnt;
Michael J. Spencer 2:1df0b61d3b5a 50 };
Michael J. Spencer 2:1df0b61d3b5a 51
Michael J. Spencer 2:1df0b61d3b5a 52 #endif /* _PID_AUTOTUNE_H */