Explorar el Código

Do not recursively enter temperature_isr

Disable the interrupt source instead, which avoids the added latency of
reentering the isr in the first place.
Yuri D'Elia hace 2 años
padre
commit
2535d072c4
Se han modificado 1 ficheros con 5 adiciones y 9 borrados
  1. 5 9
      Firmware/temperature.cpp

+ 5 - 9
Firmware/temperature.cpp

@@ -1777,15 +1777,11 @@ ISR(TIMER2_COMPB_vect)
 ISR(TIMER0_COMPB_vect)
 #endif //SYSTEM_TIMER_2
 {
-    static bool _lock = false;
-    if (!_lock)
-    {
-        _lock = true;
-        sei();
-        temperature_isr();
-        cli();
-        _lock = false;
-    }
+    DISABLE_TEMPERATURE_INTERRUPT();
+    sei();
+    temperature_isr();
+    cli();
+    ENABLE_TEMPERATURE_INTERRUPT();
 }
 
 void check_max_temp()