aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/werner/werner.c
diff options
context:
space:
mode:
authorSelene ToyKeeper2020-04-26 22:03:22 -0600
committerSelene ToyKeeper2020-04-26 22:03:22 -0600
commitd4cdfd20e21a332aa6d191955998ee460f243c0d (patch)
treed79dc759421112eefc05401828efa21c7de11176 /spaghetti-monster/werner/werner.c
parentfixed eeprom corruption after turning boost chip on/off (diff)
parentadded tweakable thermal_response_magnitude option, adjusted KR4 thermal vars,... (diff)
downloadanduril-d4cdfd20e21a332aa6d191955998ee460f243c0d.tar.gz
anduril-d4cdfd20e21a332aa6d191955998ee460f243c0d.tar.bz2
anduril-d4cdfd20e21a332aa6d191955998ee460f243c0d.zip
merged Noctigon KR4 branch, including recent ADC+thermal rewrite
Diffstat (limited to 'spaghetti-monster/werner/werner.c')
-rw-r--r--spaghetti-monster/werner/werner.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/spaghetti-monster/werner/werner.c b/spaghetti-monster/werner/werner.c
index 7c47cd7..4159fc6 100644
--- a/spaghetti-monster/werner/werner.c
+++ b/spaghetti-monster/werner/werner.c
@@ -467,14 +467,15 @@ void thermal_config_save() {
// calibrate room temperature
val = config_state_values[0];
if (val) {
- int8_t rawtemp = (temperature >> 1) - therm_cal_offset;
+ int8_t rawtemp = temperature - therm_cal_offset;
therm_cal_offset = val - rawtemp;
+ reset_thermal_history = 1; // invalidate all recent temperature data
}
val = config_state_values[1];
if (val) {
// set maximum heat limit
- therm_ceil = 30 + val;
+ therm_ceil = 30 + val - 1;
}
if (therm_ceil > MAX_THERM_CEIL) therm_ceil = MAX_THERM_CEIL;
}
@@ -589,7 +590,7 @@ uint8_t nearest_level(int16_t target) {
for(uint8_t i=0; i<ramp_discrete_steps; i++) {
this_level = ramp_discrete_floor + (i * (uint16_t)ramp_range / (ramp_discrete_steps-1));
- int8_t diff = target - this_level;
+ int16_t diff = target - this_level;
if (diff < 0) diff = -diff;
if (diff <= (ramp_discrete_step_size>>1))
return this_level;
@@ -684,9 +685,6 @@ void loop() {
StatePtr state = current_state;
- #ifdef USE_DYNAMIC_UNDERCLOCKING
- auto_clock_speed();
- #endif
if (0) {}
#ifdef USE_BATTCHECK
@@ -697,7 +695,7 @@ void loop() {
#ifdef USE_THERMAL_REGULATION
// TODO: blink out therm_ceil during thermal_config_state
else if (state == tempcheck_state) {
- blink_num(temperature>>1);
+ blink_num(temperature);
nice_delay_ms(1000);
}
#endif