Basic_Frame_TypeC_2023_Omni
Loading...
Searching...
No Matches
buzzer.h
1/*******************************************************************************
2* @file : buzzer.h
3* @brief : Use spreadsheet to add notes to the autoreload values, they correspond to PWM frequency
4* Set_compare values correspond to duty cycle, aka volume
5* @created time : Dec 5, 2020
6* @author : Adan Wang
7******************************************************************************
8* Copyright (c) 2023 UARM Artemis.
9* All rights reserved.
10*******************************************************************************/
11
12#ifndef __BUZZER_H__
13#define __BUZZER_H__
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include "stm32f407xx.h"
20#include "cmsis_os.h"
21#include "tim.h"
22
23//extern TIM_HandleTypeDef htim12;
24
25#define BUZZ_HTIM htim4
26#define BUZZ_PWM_CH TIM_CHANNEL_3
27
28typedef struct{
29 uint32_t buzzer_tick;
30 uint32_t times_tick;
31
32 uint8_t buzz_times;
34
35
36/* use for alarm */
37void buzzer_init(Buzzer_t *buzz);
38void buzzer_set_tune(uint16_t tune, uint16_t ctrl);
39void buzzer_alarm_times(uint8_t times, uint16_t duration, Buzzer_t *buzz);
40
41void buzzer_stop(void);
42void buzzer_play_scale(int32_t duration);
43void buzzer_play_chromatic(int32_t duration);
44void buzzer_play_mario(int32_t bpm);
45void play_happy_birthday(int32_t bpm);
46void buzzer_play_c1(int32_t duration);
47
48#ifdef __cplusplus
49}
50#endif
51
52#endif /* SRC_BUZZER_H_ */
Definition buzzer.h:28