ESP-IDF Firmware
Firmware architecture and call graph
Loading...
Searching...
No Matches
dsps_tone_gen.c
Go to the documentation of this file.
1
// Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include "
dsps_tone_gen.h
"
16
#include <math.h>
17
18
esp_err_t
dsps_tone_gen_f32
(
float
*output,
int
len,
float
Ampl,
float
freq,
float
phase)
19
{
20
if
(freq >= 1) {
21
return
ESP_ERR_DSP_INVALID_PARAM
;
22
}
23
if
(freq <= -1) {
24
return
ESP_ERR_DSP_INVALID_PARAM
;
25
}
26
float
ph = phase / 180 *
M_PI
;
27
float
fr = 2 *
M_PI
* freq;
28
for
(
int
i = 0 ; i < len ; i++) {
29
output[i] = Ampl * sin(ph);
30
ph += fr;
31
if
(ph > 2 *
M_PI
) {
32
ph -= 2 *
M_PI
;
33
}
34
if
(ph < -2 *
M_PI
) {
35
ph += 2 *
M_PI
;
36
}
37
}
38
return
ESP_OK
;
39
}
ESP_ERR_DSP_INVALID_PARAM
#define ESP_ERR_DSP_INVALID_PARAM
Definition
dsp_err_codes.h:21
dsps_tone_gen_f32
esp_err_t dsps_tone_gen_f32(float *output, int len, float Ampl, float freq, float phase)
tone
Definition
dsps_tone_gen.c:18
dsps_tone_gen.h
esp_err_t
int esp_err_t
Definition
esp_err.h:21
ESP_OK
#define ESP_OK
Definition
esp_err.h:23
M_PI
#define M_PI
Definition
esp_err.h:26
components
espressif__esp-dsp
modules
support
misc
dsps_tone_gen.c
Generated by
1.16.1