in-file config of the TemperatureControl, and simple adjustments to make
[clinton/Smoothieware.git] / src / modules / tools / temperaturecontrol / TemperatureControl.h
1 #ifndef TEMPERATURECONTROL_H
2 #define TEMPERATURECONTROL_H
3
4 #include "mbed.h"
5 #include "libs/Module.h"
6 #include "libs/Kernel.h"
7 #include <math.h>
8
9 #define UNDEFINED -1
10
11
12 #define temperature_control_r0_ckeckusm 8728
13 #define readings_per_second_ckeckusm 18645
14 #define temperature_control_t0_ckeckusm 9754
15 #define temperature_control_beta_ckeckusm 64275
16 #define temperature_control_vadc_ckeckusm 8725
17 #define temperature_control_vcc_ckeckusm 4274
18 #define temperature_control_r1_ckeckusm 8985
19 #define temperature_control_r2_ckeckusm 9242
20
21
22
23
24 class TemperatureControl : public Module {
25 public:
26 TemperatureControl();
27
28 void on_module_loaded();
29 void on_gcode_execute(void* argument);
30 void on_config_reload(void* argument);
31 void set_desired_temperature(double desired_temperature);
32 double get_temperature();
33 double adc_value_to_temperature(double adc_value);
34 double temperature_to_adc_value(double temperature);
35 void thermistor_read_tick();
36 double new_thermistor_reading();
37 double average_adc_reading();
38
39
40 AnalogIn* thermistor_pin;
41 PwmOut* heater_pwm;
42 double pwm_value;
43 double desired_adc_value;
44 double tail_adc_value;
45 double head_adc_value;
46
47 // Thermistor computation settings
48 double r0;
49 double t0;
50 double r1;
51 double r2;
52 double beta;
53 double vadc;
54 double vcc;
55 double k;
56 double vs;
57 double rs;
58
59 double acceleration_factor;
60 double readings_per_second;
61
62 RingBuffer<double,16> queue; // Queue of Blocks
63 int error_count;
64 };
65
66 #endif