arduino-audio-tools
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
PWMDriverAVR Class Reference

Experimental: Audio output to PWM pins for the AVR. The AVR supports only up to 2 channels. More...

#include <PWMAudioAVR.h>

Inheritance diagram for PWMDriverAVR:
DriverPWMBase

Public Member Functions

PWMConfigaudioInfo ()
 
virtual int availableForWrite ()
 
bool begin (PWMConfig cfg)
 
virtual PWMConfig defaultConfig ()
 
virtual void end ()
 
uint32_t framesPerSecond ()
 
bool isTimerStarted ()
 
void logConfig ()
 
virtual int maxChannels ()
 
virtual void pwmWrite (int channel, int value)
 
void setBuffer (BaseBuffer< uint8_t > *buffer)
 
void setupPin (int pin)
 
void setupPWM ()
 Setup LED PWM.
 
void setupTimer ()
 
void startTimer ()
 
uint32_t underflowsPerSecond ()
 
void updateStatistics ()
 
virtual size_t write (const uint8_t *wrt_buffer, size_t bytes)
 

Protected Member Functions

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 maxOutputValue ()
 
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
 

Protected Attributes

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
 
int pins [2] = {3, 11}
 
uint32_t time_1_sec
 
uint32_t underflow_count = 0
 
uint32_t underflow_per_second = 0
 

Friends

void defaultPWMAudioOutputCallback ()
 

Detailed Description

Experimental: Audio output to PWM pins for the AVR. The AVR supports only up to 2 channels.

Author
Phil Schatzmann

Member Function Documentation

◆ 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

◆ setBuffer()

void setBuffer ( BaseBuffer< uint8_t > *  buffer)
inlineinherited

You can assign your own custom buffer impelementation: must be allocated on the heap and will be cleaned up by this class

Friends And Related Function Documentation

◆ defaultPWMAudioOutputCallback

void defaultPWMAudioOutputCallback ( )
friend

separate method that can be defined as friend so that we can access protected information


The documentation for this class was generated from the following file: