in-file config of the TemperatureControl, and simple adjustments to make
[clinton/Smoothieware.git] / src / modules / tools / temperaturecontrol / TemperatureControl.h
CommitLineData
ded56b35
AW
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
7dd8133c
AW
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
ded56b35
AW
24class TemperatureControl : public Module {
25 public:
26 TemperatureControl();
27
28 void on_module_loaded();
29 void on_gcode_execute(void* argument);
7dd8133c 30 void on_config_reload(void* argument);
ded56b35
AW
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;
7dd8133c
AW
50 double r1;
51 double r2;
ded56b35
AW
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