35#include "drv_digital_out.h"
36#include "drv_digital_in.h"
59#define PIEZODRIVER_DEF_FREQ 5000
65#define PIEZODRIVER_NOTE_C2 65
66#define PIEZODRIVER_NOTE_DB2 69
67#define PIEZODRIVER_NOTE_D2 73
68#define PIEZODRIVER_NOTE_EB2 78
69#define PIEZODRIVER_NOTE_E2 82
70#define PIEZODRIVER_NOTE_F2 87
71#define PIEZODRIVER_NOTE_GB2 93
72#define PIEZODRIVER_NOTE_G2 98
73#define PIEZODRIVER_NOTE_AB2 104
74#define PIEZODRIVER_NOTE_A2 110
75#define PIEZODRIVER_NOTE_BB2 117
76#define PIEZODRIVER_NOTE_B2 123
77#define PIEZODRIVER_NOTE_C3 131
78#define PIEZODRIVER_NOTE_DB3 139
79#define PIEZODRIVER_NOTE_D3 147
80#define PIEZODRIVER_NOTE_EB3 156
81#define PIEZODRIVER_NOTE_E3 165
82#define PIEZODRIVER_NOTE_F3 175
83#define PIEZODRIVER_NOTE_GB3 185
84#define PIEZODRIVER_NOTE_G3 196
85#define PIEZODRIVER_NOTE_AB3 208
86#define PIEZODRIVER_NOTE_A3 220
87#define PIEZODRIVER_NOTE_AS3 233
88#define PIEZODRIVER_NOTE_B3 247
89#define PIEZODRIVER_NOTE_C4 262
90#define PIEZODRIVER_NOTE_DB4 277
91#define PIEZODRIVER_NOTE_D4 294
92#define PIEZODRIVER_NOTE_EB4 311
93#define PIEZODRIVER_NOTE_E4 330
94#define PIEZODRIVER_NOTE_F4 349
95#define PIEZODRIVER_NOTE_GB4 370
96#define PIEZODRIVER_NOTE_G4 392
97#define PIEZODRIVER_NOTE_AB4 415
98#define PIEZODRIVER_NOTE_A4 440
99#define PIEZODRIVER_NOTE_BB4 466
100#define PIEZODRIVER_NOTE_B4 494
101#define PIEZODRIVER_NOTE_C5 523
102#define PIEZODRIVER_NOTE_DB5 554
103#define PIEZODRIVER_NOTE_D5 587
104#define PIEZODRIVER_NOTE_EB5 622
105#define PIEZODRIVER_NOTE_E5 659
106#define PIEZODRIVER_NOTE_F5 698
107#define PIEZODRIVER_NOTE_GB5 740
108#define PIEZODRIVER_NOTE_G5 784
109#define PIEZODRIVER_NOTE_AB5 831
110#define PIEZODRIVER_NOTE_A5 880
111#define PIEZODRIVER_NOTE_BB5 932
112#define PIEZODRIVER_NOTE_B5 988
113#define PIEZODRIVER_NOTE_C6 1047
114#define PIEZODRIVER_NOTE_DB6 1109
115#define PIEZODRIVER_NOTE_D6 1175
116#define PIEZODRIVER_NOTE_EB6 1245
117#define PIEZODRIVER_NOTE_E6 1319
118#define PIEZODRIVER_NOTE_F6 1397
119#define PIEZODRIVER_NOTE_GB6 1480
120#define PIEZODRIVER_NOTE_G6 1568
121#define PIEZODRIVER_NOTE_AB6 1661
122#define PIEZODRIVER_NOTE_A6 1760
123#define PIEZODRIVER_NOTE_BB6 1865
124#define PIEZODRIVER_NOTE_B6 1976
125#define PIEZODRIVER_NOTE_C7 2093
126#define PIEZODRIVER_NOTE_DB7 2217
127#define PIEZODRIVER_NOTE_D7 2349
128#define PIEZODRIVER_NOTE_EB7 2489
129#define PIEZODRIVER_NOTE_E7 2637
130#define PIEZODRIVER_NOTE_F7 2794
131#define PIEZODRIVER_NOTE_GB7 2960
132#define PIEZODRIVER_NOTE_G7 3136
133#define PIEZODRIVER_NOTE_AB7 3322
134#define PIEZODRIVER_NOTE_A7 3520
135#define PIEZODRIVER_NOTE_BB7 3729
136#define PIEZODRIVER_NOTE_B7 3951
137#define PIEZODRIVER_NOTE_C8 4186
138#define PIEZODRIVER_NOTE_DB8 4435
139#define PIEZODRIVER_NOTE_D8 4699
140#define PIEZODRIVER_NOTE_EB8 4978
158#define PIEZODRIVER_MAP_MIKROBUS( cfg, mikrobus ) \
159 cfg.pwm = MIKROBUS( mikrobus, MIKROBUS_PWM );
err_t piezodriver_pwm_stop(piezodriver_t *ctx)
Piezo Driver stop PWM module.
err_t piezodriver_init(piezodriver_t *ctx, piezodriver_cfg_t *cfg)
Piezo Driver initialization function.
void piezodriver_cfg_setup(piezodriver_cfg_t *cfg)
Piezo Driver configuration object setup function.
void piezodriver_play_sound(piezodriver_t *ctx, uint16_t freq, uint8_t level, uint16_t duration)
Piezo Driver play sound function.
err_t piezodriver_default_cfg(piezodriver_t *ctx)
Piezo Driver default configuration function.
err_t piezodriver_set_duty_cycle(piezodriver_t *ctx, float duty_cycle)
Piezo Driver sets PWM duty cycle.
err_t piezodriver_pwm_start(piezodriver_t *ctx)
Piezo Driver start PWM module.
piezodriver_return_value_t
Piezo Driver Click return value data.
Definition: piezodriver.h:197
@ PIEZODRIVER_ERROR
Definition: piezodriver.h:199
@ PIEZODRIVER_OK
Definition: piezodriver.h:198
Piezo Driver Click configuration object.
Definition: piezodriver.h:183
uint32_t dev_pwm_freq
Definition: piezodriver.h:188
pin_name_t pwm
Definition: piezodriver.h:185
Piezo Driver Click context object.
Definition: piezodriver.h:169
uint32_t pwm_freq
Definition: piezodriver.h:174
pwm_t pwm
Definition: piezodriver.h:171