Just keep the current state. ON or OFF. No switching allowed

This commit is contained in:
Alex Voinea 2020-01-29 22:44:19 +02:00
parent 99e81812ce
commit a5198e32a3
No known key found for this signature in database
GPG key ID: F5034E7CFCF2F973

View file

@ -139,19 +139,15 @@ ISR(TIMER0_OVF_vect) // timer compare interrupt service routine
break;
case States::ONE: // state ONE - we'll either stay in ONE or change to FALL
OCR0B = 255;
if (bedPWMDisabled) return;
slowCounter += slowInc; // this does software timer_clk/256 or less
if (!bedPWMDisabled){ //disable heating as soon as possible
if( slowCounter < pwm ){
return;
}
if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain
// if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating
return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf
}
}
else if (pwm > 200){ //if duty cycle is high and BED PWM is disabled keep heater on. Prevents overcooling
if( slowCounter < pwm ){
return;
}
if( (soft_pwm_bed << 1) >= (255 - slowInc - 1) ){ //@@TODO simplify & explain
// if slowInc==2, soft_pwm == 251 will be the first to do short drops to zero. 252 will keep full heating
return; // want full duty for the next ONE cycle again - so keep on heating and just wait for the next timer ovf
}
// otherwise moving towards FALL
// @@TODO it looks like ONE_TO_FALL isn't necessary, there are no artefacts at all
state = States::ONE;//_TO_FALL;