Michael Spencer / Smoothie

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
scachat
Date:
Tue Jul 31 21:11:18 2012 +0000
Revision:
0:31e91bb0ef3c
Child:
2:1df0b61d3b5a
smoothie port to mbed online compiler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
scachat 0:31e91bb0ef3c 1 /*
scachat 0:31e91bb0ef3c 2 this file is part of smoothie (http://smoothieware.org/). the motion control part is heavily based on grbl (https://github.com/simen/grbl).
scachat 0:31e91bb0ef3c 3 smoothie is free software: you can redistribute it and/or modify it under the terms of the gnu general public license as published by the free software foundation, either version 3 of the license, or (at your option) any later version.
scachat 0:31e91bb0ef3c 4 smoothie is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. see the gnu general public license for more details.
scachat 0:31e91bb0ef3c 5 you should have received a copy of the gnu general public license along with smoothie. if not, see <http://www.gnu.org/licenses/>.
scachat 0:31e91bb0ef3c 6 */
scachat 0:31e91bb0ef3c 7
scachat 0:31e91bb0ef3c 8 #ifndef temperaturecontrol_h
scachat 0:31e91bb0ef3c 9 #define temperaturecontrol_h
scachat 0:31e91bb0ef3c 10
scachat 0:31e91bb0ef3c 11 #include "libs/Pin.h"
scachat 0:31e91bb0ef3c 12 #include <math.h>
scachat 0:31e91bb0ef3c 13
scachat 0:31e91bb0ef3c 14 #define UNDEFINED -1
scachat 0:31e91bb0ef3c 15
scachat 0:31e91bb0ef3c 16 #define thermistor_checksum 41045
scachat 0:31e91bb0ef3c 17 #define r0_checksum 5538
scachat 0:31e91bb0ef3c 18 #define readings_per_second_checksum 18645
scachat 0:31e91bb0ef3c 19 #define t0_checksum 6564
scachat 0:31e91bb0ef3c 20 #define beta_checksum 1181
scachat 0:31e91bb0ef3c 21 #define vadc_checksum 10911
scachat 0:31e91bb0ef3c 22 #define vcc_checksum 36157
scachat 0:31e91bb0ef3c 23 #define r1_checksum 5795
scachat 0:31e91bb0ef3c 24 #define r2_checksum 6052
scachat 0:31e91bb0ef3c 25 #define temperature_control_checksum 44054
scachat 0:31e91bb0ef3c 26 #define thermistor_pin_checksum 1788
scachat 0:31e91bb0ef3c 27 #define heater_pin_checksum 35619
scachat 0:31e91bb0ef3c 28
scachat 0:31e91bb0ef3c 29 class TemperatureControl : public Module {
scachat 0:31e91bb0ef3c 30 public:
scachat 0:31e91bb0ef3c 31 TemperatureControl();
scachat 0:31e91bb0ef3c 32 TemperatureControl(uint16_t name);
scachat 0:31e91bb0ef3c 33
scachat 0:31e91bb0ef3c 34 virtual void on_module_loaded();
scachat 0:31e91bb0ef3c 35 virtual void on_main_loop(void* argument);
scachat 0:31e91bb0ef3c 36 virtual void on_gcode_execute(void* argument);
scachat 0:31e91bb0ef3c 37 virtual void on_config_reload(void* argument);
scachat 0:31e91bb0ef3c 38 void set_desired_temperature(double desired_temperature);
scachat 0:31e91bb0ef3c 39 double get_temperature();
scachat 0:31e91bb0ef3c 40 double adc_value_to_temperature(double adc_value);
scachat 0:31e91bb0ef3c 41 double temperature_to_adc_value(double temperature);
scachat 0:31e91bb0ef3c 42 uint32_t thermistor_read_tick(uint32_t dummy);
scachat 0:31e91bb0ef3c 43 double new_thermistor_reading();
scachat 0:31e91bb0ef3c 44 double average_adc_reading();
scachat 0:31e91bb0ef3c 45
scachat 0:31e91bb0ef3c 46 double desired_adc_value;
scachat 0:31e91bb0ef3c 47 double tail_adc_value;
scachat 0:31e91bb0ef3c 48 double head_adc_value;
scachat 0:31e91bb0ef3c 49
scachat 0:31e91bb0ef3c 50 // Thermistor computation settings
scachat 0:31e91bb0ef3c 51 double r0;
scachat 0:31e91bb0ef3c 52 double t0;
scachat 0:31e91bb0ef3c 53 double r1;
scachat 0:31e91bb0ef3c 54 double r2;
scachat 0:31e91bb0ef3c 55 double beta;
scachat 0:31e91bb0ef3c 56 double vadc;
scachat 0:31e91bb0ef3c 57 double vcc;
scachat 0:31e91bb0ef3c 58 double k;
scachat 0:31e91bb0ef3c 59 double vs;
scachat 0:31e91bb0ef3c 60 double rs;
scachat 0:31e91bb0ef3c 61
scachat 0:31e91bb0ef3c 62 double acceleration_factor;
scachat 0:31e91bb0ef3c 63 double readings_per_second;
scachat 0:31e91bb0ef3c 64
scachat 0:31e91bb0ef3c 65 RingBuffer<double,16> queue; // Queue of Blocks
scachat 0:31e91bb0ef3c 66 int error_count;
scachat 0:31e91bb0ef3c 67
scachat 0:31e91bb0ef3c 68 uint16_t name_checksum;
scachat 0:31e91bb0ef3c 69
scachat 0:31e91bb0ef3c 70 Pin* thermistor_pin;
scachat 0:31e91bb0ef3c 71 Pin* heater_pin;
scachat 0:31e91bb0ef3c 72
scachat 0:31e91bb0ef3c 73 bool waiting;
scachat 0:31e91bb0ef3c 74
scachat 0:31e91bb0ef3c 75 };
scachat 0:31e91bb0ef3c 76
scachat 0:31e91bb0ef3c 77 #endif