Make M300 S0 pause like Marlin
Follow Marlin's behavior and simply insert a delay for the requested duration when using M300 S0. When S is not specified, use the default tone instead. Fixes #3856
This commit is contained in:
parent
46a979271d
commit
805e71e504
@ -7366,8 +7366,7 @@ Sigma_Exit:
|
|||||||
break;
|
break;
|
||||||
#endif // NUM_SERVOS > 0
|
#endif // NUM_SERVOS > 0
|
||||||
|
|
||||||
#if (LARGE_FLASH == true && ( BEEPER > 0 || defined(ULTRALCD) || defined(LCD_USE_I2C_BUZZER)))
|
#if (LARGE_FLASH == true && BEEPER > 0 )
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
### M300 - Play tone <a href="https://reprap.org/wiki/G-code#M300:_Play_beep_sound">M300: Play beep sound</a>
|
### M300 - Play tone <a href="https://reprap.org/wiki/G-code#M300:_Play_beep_sound">M300: Play beep sound</a>
|
||||||
In Prusa Firmware the defaults are `100Hz` and `1000ms`, so that `M300` without parameters will beep for a second.
|
In Prusa Firmware the defaults are `100Hz` and `1000ms`, so that `M300` without parameters will beep for a second.
|
||||||
@ -7381,12 +7380,19 @@ Sigma_Exit:
|
|||||||
*/
|
*/
|
||||||
case 300: // M300
|
case 300: // M300
|
||||||
{
|
{
|
||||||
uint16_t beepS = code_seen('S') ? code_value() : 0;
|
|
||||||
uint16_t beepP = code_seen('P') ? code_value() : 1000;
|
uint16_t beepP = code_seen('P') ? code_value() : 1000;
|
||||||
#if BEEPER > 0
|
uint16_t beepS;
|
||||||
if (beepP > 0)
|
if (!code_seen('S'))
|
||||||
Sound_MakeCustom(beepP,beepS,false);
|
beepS = 0;
|
||||||
#endif
|
else {
|
||||||
|
beepS = code_value();
|
||||||
|
if (!beepS) {
|
||||||
|
// handle S0 as a pause
|
||||||
|
_delay(beepP);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Sound_MakeCustom(beepP, beepS, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif // M300
|
#endif // M300
|
||||||
|
Loading…
Reference in New Issue
Block a user