Add lcd_buzz function to ultralcd.h so that non-LCD code can make use of lcd's buzzer.

Argument order of lcd_buzz was set to mirror that on tone(). Change
default M300 frequency to something audible.
This commit is contained in:
Robert F-C 2013-04-29 21:50:52 +10:00
parent 788d62bcc4
commit 7f57f28ccc
3 changed files with 23 additions and 7 deletions

View File

@ -1446,16 +1446,20 @@ void process_commands()
}
break;
#if defined(LARGE_FLASH) && LARGE_FLASH == true && defined(BEEPER) && BEEPER > -1
#if defined(LARGE_FLASH) && LARGE_FLASH == true
case 300: // M300
{
int beepS = 1;
int beepS = 400;
int beepP = 1000;
if(code_seen('S')) beepS = code_value();
if(code_seen('P')) beepP = code_value();
tone(BEEPER, beepS);
delay(beepP);
noTone(BEEPER);
#if defined(BEEPER) && BEEPER > -1
tone(BEEPER, beepS);
delay(beepP);
noTone(BEEPER);
#elif defined(ULTRALCD)
lcd_buzz(beepS, beepP);
#endif
}
break;
#endif // M300
@ -1672,17 +1676,19 @@ void process_commands()
manage_inactivity();
lcd_update();
#if BEEPER > -1
if(cnt==0)
{
#if defined(BEEPER) && BEEPER > -1
SET_OUTPUT(BEEPER);
WRITE(BEEPER,HIGH);
delay(3);
WRITE(BEEPER,LOW);
delay(3);
}
#else
lcd_buzz(1000/6,100);
#endif
}
}
//return to normal

View File

@ -946,6 +946,13 @@ void lcd_buttons_update()
lastEncoderBits = enc;
}
void lcd_buzz(long duration, uint16_t freq)
{
#ifdef LCD_USE_I2C_BUZZER
lcd.buzz(duration,freq);
#endif
}
bool lcd_clicked()
{
return LCD_CLICKED;

View File

@ -34,6 +34,8 @@
extern int absPreheatHPBTemp;
extern int absPreheatFanSpeed;
void lcd_buzz(long duration,uint16_t freq);
bool lcd_clicked();
#else //no lcd
@ -42,6 +44,7 @@
FORCE_INLINE void lcd_setstatus(const char* message) {}
FORCE_INLINE void lcd_buttons_update() {}
FORCE_INLINE void lcd_reset_alert_level() {}
FORCE_INLINE void lcd_buzz(long duration,uint16_t freq) {}
#define LCD_MESSAGEPGM(x)
#define LCD_ALERTMESSAGEPGM(x)