arduino-audio-tools
Loading...
Searching...
No Matches
PWMConfigZephyr.h
Go to the documentation of this file.
1#pragma once
2
3#include "stdint.h"
4#include "vector"
5#include <zephyr/drivers/pwm.h>
6
8#define PWM_PIN(pin_label) PWM_DT_SPEC_GET(DT_NODELABEL(pin_label))
9
10namespace audio_tools {
21struct PWMConfigZephyr : public AudioInfo {
23 // default basic information
24 sample_rate = 8000u; // sample rate in Hz
25 channels = 1;
26 bits_per_sample = 16;
27 }
28
33
34 uint32_t pwm_frequency = 0; // audable range is from 20 to
35
37
40
42 std::vector<pwm_dt_spec> pins;
43
44 void logConfig() {
45 LOGI("sample_rate: %d", (int) sample_rate);
46 LOGI("channels: %d", channels);
47 LOGI("bits_per_sample: %u", bits_per_sample);
48 LOGI("buffer_size: %u", buffer_size);
49 LOGI("buffer_count: %u", buffers);
50 LOGI("pwm_frequency: %u", (unsigned)pwm_frequency);
51 LOGI("resolution: %d", resolution);
52 LOGI("pwm pin count: %d", pins.size());
53 }
54};
55
56using PWMConfig = PWMConfigZephyr;
57
58}
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define PWM_BUFFER_COUNT
Definition AudioToolsConfig.h:174
#define PWM_MAX_SAMPLE_RATE
Definition AudioToolsConfig.h:299
#define PWM_BUFFER_SIZE
Definition avr.h:17
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
PWMConfigAVR PWMConfig
Definition PWMConfigAVR.h:53
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:508
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:51
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition AudioTypes.h:53
uint16_t channels
Number of channels: 2=stereo, 1=mono.
Definition AudioTypes.h:55
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:57
Configuration data for PWM audio output. Define the pins as follows: config.pins = {PWM_PIN(pwm_led_0...
Definition PWMConfigZephyr.h:21
PWMConfigZephyr()
Definition PWMConfigZephyr.h:22
uint8_t resolution
Definition PWMConfigZephyr.h:36
std::vector< pwm_dt_spec > pins
Define the pwm pins in zephyr.
Definition PWMConfigZephyr.h:42
uint32_t pwm_frequency
Definition PWMConfigZephyr.h:34
void logConfig()
Definition PWMConfigZephyr.h:44
uint32_t max_sample_rate
max sample sample rate that still produces good audio
Definition PWMConfigZephyr.h:39
uint16_t buffer_size
size of an inidividual buffer
Definition PWMConfigZephyr.h:30
uint8_t buffers
number of buffers
Definition PWMConfigZephyr.h:32