Non-blocking buzzer
This commit is contained in:
committed by
Scott Lahteine
parent
26f8f54c56
commit
5b5aa1572b
@ -59,7 +59,6 @@
|
||||
#include "language.h"
|
||||
#include "pins_arduino.h"
|
||||
#include "math.h"
|
||||
#include "buzzer.h"
|
||||
|
||||
#if ENABLED(USE_WATCHDOG)
|
||||
#include "watchdog.h"
|
||||
@ -354,6 +353,15 @@ static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL
|
||||
Stopwatch print_job_timer = Stopwatch();
|
||||
#endif
|
||||
|
||||
// Buzzer
|
||||
#if HAS_BUZZER
|
||||
#if ENABLED(SPEAKER)
|
||||
Speaker buzzer;
|
||||
#else
|
||||
Buzzer buzzer;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static uint8_t target_extruder;
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
||||
@ -1233,7 +1241,7 @@ inline bool code_value_bool() { return code_value_byte() > 0; }
|
||||
|
||||
#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
|
||||
inline void set_input_temp_units(TempUnit units) { input_temp_units = units; }
|
||||
|
||||
|
||||
float code_value_temp_abs() {
|
||||
switch (input_temp_units) {
|
||||
case TEMPUNIT_C:
|
||||
@ -5689,10 +5697,13 @@ inline void gcode_M226() {
|
||||
* M300: Play beep sound S<frequency Hz> P<duration ms>
|
||||
*/
|
||||
inline void gcode_M300() {
|
||||
uint16_t beepS = code_seen('S') ? code_value_ushort() : 110;
|
||||
uint32_t beepP = code_seen('P') ? code_value_ulong() : 1000;
|
||||
if (beepP > 5000) beepP = 5000; // limit to 5 seconds
|
||||
buzz(beepP, beepS);
|
||||
uint16_t const frequency = code_seen('S') ? code_value_ushort() : 260;
|
||||
uint16_t duration = code_seen('P') ? code_value_ushort() : 1000;
|
||||
|
||||
// Limits the tone duration to 0-5 seconds.
|
||||
NOMORE(duration, 5000);
|
||||
|
||||
buzzer.tone(duration, frequency);
|
||||
}
|
||||
|
||||
#endif // HAS_BUZZER
|
||||
@ -6173,7 +6184,7 @@ inline void gcode_M428() {
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_M428_TOO_FAR);
|
||||
LCD_ALERTMESSAGEPGM("Err: Too far!");
|
||||
#if HAS_BUZZER
|
||||
buzz(200, 40);
|
||||
buzzer.tone(200, 40);
|
||||
#endif
|
||||
err = true;
|
||||
break;
|
||||
@ -6190,8 +6201,8 @@ inline void gcode_M428() {
|
||||
report_current_position();
|
||||
LCD_MESSAGEPGM(MSG_HOME_OFFSETS_APPLIED);
|
||||
#if HAS_BUZZER
|
||||
buzz(200, 659);
|
||||
buzz(200, 698);
|
||||
buzzer.tone(200, 659);
|
||||
buzzer.tone(200, 698);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@ -8076,17 +8087,23 @@ void idle(
|
||||
bool no_stepper_sleep/*=false*/
|
||||
#endif
|
||||
) {
|
||||
thermalManager.manage_heater();
|
||||
lcd_update();
|
||||
host_keepalive();
|
||||
manage_inactivity(
|
||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
||||
no_stepper_sleep
|
||||
#endif
|
||||
);
|
||||
host_keepalive();
|
||||
lcd_update();
|
||||
|
||||
thermalManager.manage_heater();
|
||||
|
||||
#if ENABLED(PRINTCOUNTER)
|
||||
print_job_timer.tick();
|
||||
#endif
|
||||
|
||||
#if HAS_BUZZER
|
||||
buzzer.tick();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user