Minor changes in the temperature code for some cleanup.
This commit is contained in:
		| @@ -111,33 +111,24 @@ static volatile bool temp_meas_ready = false; | |||||||
|   unsigned long watchmillis = 0; |   unsigned long watchmillis = 0; | ||||||
| #endif //WATCHPERIOD | #endif //WATCHPERIOD | ||||||
|  |  | ||||||
|  | #if EXTRUDERS > 3 | ||||||
|  | # error Unsupported number of extruders | ||||||
|  | #elif EXTRUDERS > 2 | ||||||
|  | # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2, v3 } | ||||||
|  | #elif EXTRUDERS > 1 | ||||||
|  | # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2 } | ||||||
|  | #else | ||||||
|  | # define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1 } | ||||||
|  | #endif | ||||||
|  |  | ||||||
| // Init min and max temp with extreme values to prevent false errors during startup | // Init min and max temp with extreme values to prevent false errors during startup | ||||||
|   static int minttemp[EXTRUDERS] = { 0 }; | static int minttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0, 0, 0); | ||||||
|   static int maxttemp[EXTRUDERS] = { 16383 }; // the first value used for all | static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(16383, 16383, 16383); // the first value used for all | ||||||
|   static int bed_minttemp = 0; | static int bed_minttemp = 0; | ||||||
|   static int bed_maxttemp = 16383; | static int bed_maxttemp = 16383; | ||||||
|   static void *heater_ttbl_map[EXTRUDERS] = { (void *)heater_0_temptable | static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS((void *)heater_0_temptable, (void *)heater_1_temptable, (void *)heater_2_temptable); | ||||||
| #if EXTRUDERS > 1 | static int heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS(heater_0_temptable_len, heater_1_temptable_len, heater_2_temptable_len); | ||||||
|                                             , (void *)heater_1_temptable |  | ||||||
| #endif |  | ||||||
| #if EXTRUDERS > 2 |  | ||||||
|                                             , (void *)heater_2_temptable |  | ||||||
| #endif |  | ||||||
| #if EXTRUDERS > 3 |  | ||||||
|   #error Unsupported number of extruders |  | ||||||
| #endif |  | ||||||
|   }; |  | ||||||
|   static int heater_ttbllen_map[EXTRUDERS] = { heater_0_temptable_len |  | ||||||
| #if EXTRUDERS > 1 |  | ||||||
|                                              , heater_1_temptable_len |  | ||||||
| #endif |  | ||||||
| #if EXTRUDERS > 2 |  | ||||||
|                                              , heater_2_temptable_len |  | ||||||
| #endif |  | ||||||
| #if EXTRUDERS > 3 |  | ||||||
|   #error Unsupported number of extruders |  | ||||||
| #endif |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
| //=========================================================================== | //=========================================================================== | ||||||
| //=============================   functions      ============================ | //=============================   functions      ============================ | ||||||
| @@ -820,6 +811,9 @@ void max_temp_error(uint8_t e) { | |||||||
|     SERIAL_ERRORLN((int)e); |     SERIAL_ERRORLN((int)e); | ||||||
|     SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !"); |     SERIAL_ERRORLNPGM(": Extruder switched off. MAXTEMP triggered !"); | ||||||
|   } |   } | ||||||
|  |   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE | ||||||
|  |   Stop(); | ||||||
|  |   #endif | ||||||
| } | } | ||||||
|  |  | ||||||
| void min_temp_error(uint8_t e) { | void min_temp_error(uint8_t e) { | ||||||
| @@ -829,6 +823,9 @@ void min_temp_error(uint8_t e) { | |||||||
|     SERIAL_ERRORLN((int)e); |     SERIAL_ERRORLN((int)e); | ||||||
|     SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !"); |     SERIAL_ERRORLNPGM(": Extruder switched off. MINTEMP triggered !"); | ||||||
|   } |   } | ||||||
|  |   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE | ||||||
|  |   Stop(); | ||||||
|  |   #endif | ||||||
| } | } | ||||||
|  |  | ||||||
| void bed_max_temp_error(void) { | void bed_max_temp_error(void) { | ||||||
| @@ -839,16 +836,19 @@ void bed_max_temp_error(void) { | |||||||
|     SERIAL_ERROR_START; |     SERIAL_ERROR_START; | ||||||
|     SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !!"); |     SERIAL_ERRORLNPGM("Temperature heated bed switched off. MAXTEMP triggered !!"); | ||||||
|   } |   } | ||||||
|  |   #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE | ||||||
|  |   Stop(); | ||||||
|  |   #endif | ||||||
| } | } | ||||||
|  |  | ||||||
| #define HEAT_INTERVAL 250 |  | ||||||
| #ifdef HEATER_0_USES_MAX6675 | #ifdef HEATER_0_USES_MAX6675 | ||||||
|  | #define MAX6675_HEAT_INTERVAL 250 | ||||||
| long max6675_previous_millis = -HEAT_INTERVAL; | long max6675_previous_millis = -HEAT_INTERVAL; | ||||||
| int max6675_temp = 2000; | int max6675_temp = 2000; | ||||||
|  |  | ||||||
| int read_max6675() | int read_max6675() | ||||||
| { | { | ||||||
|   if (millis() - max6675_previous_millis < HEAT_INTERVAL)  |   if (millis() - max6675_previous_millis < MAX6675_HEAT_INTERVAL)  | ||||||
|     return max6675_temp; |     return max6675_temp; | ||||||
|    |    | ||||||
|   max6675_previous_millis = millis(); |   max6675_previous_millis = millis(); | ||||||
| @@ -1077,20 +1077,10 @@ ISR(TIMER0_COMPB_vect) | |||||||
|        if(current_raw[e] >= maxttemp[e]) { |        if(current_raw[e] >= maxttemp[e]) { | ||||||
|           target_raw[e] = 0; |           target_raw[e] = 0; | ||||||
|           max_temp_error(e); |           max_temp_error(e); | ||||||
|           #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE |  | ||||||
|           { |  | ||||||
|             Stop();; |  | ||||||
|           } |  | ||||||
|           #endif |  | ||||||
|        } |        } | ||||||
|        if(current_raw[e] <= minttemp[e]) { |        if(current_raw[e] <= minttemp[e]) { | ||||||
|           target_raw[e] = 0; |           target_raw[e] = 0; | ||||||
|           min_temp_error(e); |           min_temp_error(e); | ||||||
|           #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE |  | ||||||
|           { |  | ||||||
|             Stop(); |  | ||||||
|           } |  | ||||||
|           #endif |  | ||||||
|        } |        } | ||||||
|     } |     } | ||||||
|    |    | ||||||
| @@ -1098,7 +1088,6 @@ ISR(TIMER0_COMPB_vect) | |||||||
|     if(current_raw_bed >= bed_maxttemp) { |     if(current_raw_bed >= bed_maxttemp) { | ||||||
|        target_raw_bed = 0; |        target_raw_bed = 0; | ||||||
|        bed_max_temp_error(); |        bed_max_temp_error(); | ||||||
|        Stop(); |  | ||||||
|     } |     } | ||||||
| #endif | #endif | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user