Audio output to PWM pins for STM32. We use one timer to generate the sample rate and one timer for the PWM signal.
More...
#include <PWMAudioSTM32.h>
|
PWMConfig & | audioInfo () |
|
virtual int | availableForWrite () |
|
bool | begin (PWMConfig cfg) |
|
virtual PWMConfig | defaultConfig () |
|
virtual void | end () override |
|
uint32_t | framesPerSecond () |
|
bool | isTimerStarted () |
|
void | setBuffer (BaseBuffer< uint8_t > *buffer) |
|
void | setPWMTimer (HardwareTimer &t) |
| Defines the timer which is used to generate the PWM signal.
|
|
uint32_t | underflowsPerSecond () |
|
void | updateStatistics () |
|
virtual size_t | write (const uint8_t *data, size_t len) |
|
|
virtual int | decimation () |
| Decimation factor to reduce the sample rate.
|
|
void | deleteBuffer () |
|
virtual int | effectiveOutputSampleRate () |
| Provides the effective sample rate.
|
|
virtual bool | isDecimateActive () |
|
virtual int | maxChannels () |
| One timer supports max 4 output pins.
|
|
virtual int | maxOutputValue () |
| provides the max value for the configured resulution
|
|
virtual int | maxSampleRate () |
| Provides the max working sample rate.
|
|
virtual int | nextValue () |
| determines the next scaled value
|
|
void | playNextFrame () |
| writes the next frame to the output pins
|
|
virtual void | pwmWrite (int channel, int value) |
|
virtual void | setupPWM () |
| Setup PWM Pins.
|
|
virtual void | setupTimer () |
|
virtual void | startTimer () override |
|
|
AudioInfo | actual_info |
|
PWMConfig | audio_config |
|
BaseBuffer< uint8_t > * | buffer = nullptr |
|
Decimate | decimate |
|
uint32_t | frame_count = 0 |
|
uint32_t | frame_size = 0 |
|
uint32_t | frames_per_second = 0 |
|
bool | is_blocking_write = true |
|
bool | is_timer_started = false |
|
int64_t | max_value |
|
HardwareTimer * | p_pwm_timer = nullptr |
|
PWM | pwm |
|
TimerAlarmRepeating | ticker |
|
uint32_t | time_1_sec |
|
uint32_t | underflow_count = 0 |
|
uint32_t | underflow_per_second = 0 |
|
Audio output to PWM pins for STM32. We use one timer to generate the sample rate and one timer for the PWM signal.
- Author
- Phil Schatzmann
- Copyright
- GPLv3
◆ isDecimateActive()
virtual bool isDecimateActive |
( |
| ) |
|
|
inlineprotectedvirtualinherited |
The requested sampling rate is too hight: we only process half of the samples so we can half the sampling rate
◆ pwmWrite()
virtual void pwmWrite |
( |
int |
channel, |
|
|
int |
value |
|
) |
| |
|
inlineprotectedvirtual |
write a pwm value to the indicated channel. The max value depends on the resolution
Implements DriverPWMBase.
◆ setBuffer()
You can assign your own custom buffer impelementation: must be allocated on the heap and will be cleaned up by this class
◆ startTimer()
virtual void startTimer |
( |
| ) |
|
|
inlineoverrideprotectedvirtual |
when we get the first write -> we activate the timer to start with the output of data
Implements DriverPWMBase.
The documentation for this class was generated from the following file: