// if we are in the foreground, we can just beep.
movement_play_signal();
} else {
- // if we were in the background, we need to enable the buzzer peripheral first,
- watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
- // and then turn the buzzer peripheral off again.
- watch_disable_buzzer();
}
break;
default:
// if we are in the foreground, we can just beep.
movement_play_signal();
} else {
- // if we were in the background, we need to enable the buzzer peripheral first,
- watch_enable_buzzer();
// beep quickly (this call blocks for 275 ms),
movement_play_signal();
- // and then turn the buzzer peripheral off again.
- watch_disable_buzzer();
}
break;
default:
if (watch_is_buzzer_or_led_enabled()) {
_alarm_play_short_beep(state->alarm[state->alarm_playing_idx].pitch);
} else {
- // enable, play beep and disable buzzer again
- watch_enable_buzzer();
+ // play beep
_alarm_play_short_beep(state->alarm[state->alarm_playing_idx].pitch);
- watch_disable_buzzer();
}
} else {
// regular alarm beeps
if (!hri_tcc_get_CTRLA_reg(TCC0, TCC_CTRLA_ENABLE)) {
_watch_enable_tcc();
}
+ gpio_set_pin_direction(BUZZER, GPIO_DIRECTION_OUT);
}
inline void watch_set_buzzer_period(uint32_t period) {
hri_tcc_write_PERBUF_reg(TCC0, period);
void watch_disable_buzzer(void) {
_watch_disable_tcc();
+ watch_set_buzzer_off();
}
inline void watch_set_buzzer_on(void) {
}
inline void watch_set_buzzer_off(void) {
- gpio_set_pin_direction(BUZZER, GPIO_DIRECTION_OFF);
gpio_set_pin_function(BUZZER, GPIO_PIN_FUNCTION_OFF);
+ gpio_set_pin_level(BUZZER, true);
}
void watch_buzzer_play_note(BuzzerNote note, uint16_t duration_ms) {