YAHAL
Yet Another Hardware Abstraction Library
Loading...
Searching...
No Matches
src
drivers
rp2350
pcm_pwm
pcm_pwm_rp2350_drv.h
1
// ---------------------------------------------
2
// This file is part of
3
// _ _ __ _ _ __ __
4
// ( \/ ) /__\ ( )_( ) /__\ ( )
5
// \ / /(__)\ ) _ ( /(__)\ )(__
6
// (__)(__)(__)(_) (_)(__)(__)(____)
7
//
8
// Yet Another HW Abstraction Library
9
// Copyright (C) Andreas Terstegge
10
// BSD Licensed (see file LICENSE)
11
//
12
// ---------------------------------------------
13
//
14
#ifndef _PCM_PWM_RP2350_DRV_H_
15
#define _PCM_PWM_RP2350_DRV_H_
16
17
#include <cstdint>
18
#include "pcm_audio_interface.h"
19
#include "gpio_rp2350.h"
20
#include "timer_rp2350.h"
21
#include "RP2350.h"
22
23
using namespace
_PWM_;
24
25
class
pcm_pwm_rp2350_drv
:
public
pcm_audio_interface
{
26
public
:
27
pcm_pwm_rp2350_drv
(gpio_pin_t left, gpio_pin_t right);
28
pcm_pwm_rp2350_drv
(gpio_pin_t mono);
29
virtual
~pcm_pwm_rp2350_drv
();
30
31
void
enable_output(
bool
v);
32
void
setPcmRate(uint32_t Hz)
override
;
33
inline
void
timer_reset() { _pcm_timer.reset(); }
34
35
private
:
36
bool
_stereo;
37
gpio_rp2350
_gpio_left;
38
gpio_rp2350
_gpio_right;
39
timer_rp2350
_pcm_timer;
40
bool
_left_is_pwm_b;
41
bool
_right_is_pwm_b;
42
CH_CSR_t * _left_pwm_csr;
43
CH_CC_t * _left_pwm_cc;
44
CH_CSR_t * _right_pwm_csr;
45
CH_CC_t * _right_pwm_cc;
46
};
47
48
#endif
// _PCM_PWM_RP2350_DRV_H_
gpio_rp2350
Definition
gpio_rp2350.h:36
pcm_audio_interface
Definition
pcm_audio_interface.h:29
pcm_pwm_rp2350_drv
Definition
pcm_pwm_rp2350_drv.h:25
timer_rp2350
Definition
timer_rp2350.h:35
Generated by
1.12.0