Switch to ATOMIC sections instead of cli/sei/CRITICAL_SECTION

This commit is contained in:
Yuri D'Elia 2022-08-21 14:27:26 +02:00
parent 8cbe69e285
commit 30dccb3252

View File

@ -1157,18 +1157,18 @@ FORCE_INLINE static void applyBabysteps() {
if(curTodo>0)
{
CRITICAL_SECTION_START;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
babystep(axis,/*fwd*/true);
babystepsTodo[axis]--; //less to do next time
CRITICAL_SECTION_END;
}
}
else
if(curTodo<0)
{
CRITICAL_SECTION_START;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
babystep(axis,/*fwd*/false);
babystepsTodo[axis]++; //less to do next time
CRITICAL_SECTION_END;
}
}
}
}
@ -1537,9 +1537,9 @@ ISR(TIMER0_COMPB_vect)
#endif //SYSTEM_TIMER_2
{
DISABLE_SOFT_PWM_INTERRUPT();
sei();
NONATOMIC_BLOCK(NONATOMIC_FORCEOFF) {
soft_pwm_isr();
cli();
}
ENABLE_SOFT_PWM_INTERRUPT();
}
@ -1825,7 +1825,7 @@ void temp_mgr_init()
adc_start_cycle();
// initialize timer5
CRITICAL_SECTION_START;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
// CTC
TCCR5B &= ~(1<<WGM53);
@ -1850,7 +1850,7 @@ void temp_mgr_init()
TEMP_MGR_INT_FLAG_CLEAR();
ENABLE_TEMP_MGR_INTERRUPT();
CRITICAL_SECTION_END;
}
}
static void pid_heater(uint8_t e, const float current, const int target)
@ -2174,9 +2174,9 @@ ISR(TIMER5_COMPA_vect)
// run temperature management with interrupts enabled to reduce latency
DISABLE_TEMP_MGR_INTERRUPT();
sei();
NONATOMIC_BLOCK(NONATOMIC_FORCEOFF) {
temp_mgr_isr();
cli();
}
ENABLE_TEMP_MGR_INTERRUPT();
}
@ -2185,8 +2185,7 @@ void disable_heater()
setAllTargetHotends(0);
setTargetBed(0);
CRITICAL_SECTION_START;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
// propagate all values down the chain
setIsrTargetTemperatures();
temp_mgr_pid();
@ -2207,8 +2206,7 @@ void disable_heater()
timer02_set_pwm0(0);
bedPWMDisabled = 0;
#endif
CRITICAL_SECTION_END;
}
}
static void check_min_temp_raw()