arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
CoreAudio
AudioTimer
AudioTimerMBED.h
Go to the documentation of this file.
1
#pragma once
2
3
#if defined(ARDUINO_ARCH_MBED)
4
#include "
AudioTools/CoreAudio/AudioTimer/AudioTimerBase.h
"
5
#include "mbed.h"
6
7
namespace
audio_tools
{
8
9
class
TimerAlarmRepeatingDriverMBED;
10
static
TimerAlarmRepeatingDriverMBED
*
timerAlarmRepeating
=
nullptr
;
11
20
class
TimerAlarmRepeatingDriverMBED
:
public
TimerAlarmRepeatingDriverBase
{
21
public
:
22
TimerAlarmRepeatingDriverMBED
() {
timerAlarmRepeating
=
this
; }
23
27
bool
begin
(
repeating_timer_callback_t
callback_f
,
uint32_t
time,
28
TimeUnit
unit =
MS
)
override
{
29
callback
=
callback_f
;
30
31
// we determine the time in microseconds
32
switch
(unit) {
33
case
MS
:
34
ticker
.attach(
tickerCallback
, std::chrono::microseconds(time * 1000));
35
break
;
36
case
US
:
37
ticker
.attach(
tickerCallback
, std::chrono::microseconds(time));
38
break
;
39
case
HZ
:
40
// convert hz to time in us
41
uint64_t
time_us
=
AudioTime::toTimeUs
(time);
42
ticker
.attach(
tickerCallback
, std::chrono::microseconds(
time_us
));
43
break
;
44
}
45
return
true
;
46
}
47
48
// ends the timer and if necessary the task
49
bool
end
() {
50
ticker
.detach();
51
return
true
;
52
}
53
54
protected
:
55
mbed::Ticker
ticker
;
56
repeating_timer_callback_t
callback
;
57
58
inline
static
void
tickerCallback
() {
59
timerAlarmRepeating
->
callback
(
timerAlarmRepeating
->
object
);
60
}
61
};
62
64
using
TimerAlarmRepeatingDriver
= TimerAlarmRepeatingDriverMBED;
65
66
}
// namespace audio_tools
67
68
#endif
AudioTimerBase.h
audio_tools::AudioTime::toTimeUs
static uint32_t toTimeUs(uint32_t samplingRate, uint8_t limit=10)
converts sampling rate to delay in microseconds (μs)
Definition
AudioTypes.h:242
audio_tools::TimerAlarmRepeatingDriverBase
Definition
AudioTimerBase.h:22
audio_tools::TimerAlarmRepeatingDriverBase::object
void * object
Definition
AudioTimerBase.h:40
audio_tools::TimerAlarmRepeatingDriverMBED
Repeating Timer functions for repeated execution: Plaease use the typedef TimerAlarmRepeating.
Definition
AudioTimerMBED.h:20
audio_tools::TimerAlarmRepeatingDriverMBED::tickerCallback
static void tickerCallback()
Definition
AudioTimerMBED.h:58
audio_tools::TimerAlarmRepeatingDriverMBED::TimerAlarmRepeatingDriverMBED
TimerAlarmRepeatingDriverMBED()
Definition
AudioTimerMBED.h:22
audio_tools::TimerAlarmRepeatingDriverMBED::begin
bool begin(repeating_timer_callback_t callback_f, uint32_t time, TimeUnit unit=MS) override
Definition
AudioTimerMBED.h:27
audio_tools::TimerAlarmRepeatingDriverMBED::callback
repeating_timer_callback_t callback
Definition
AudioTimerMBED.h:56
audio_tools::TimerAlarmRepeatingDriverMBED::ticker
mbed::Ticker ticker
Definition
AudioTimerMBED.h:55
audio_tools::TimerAlarmRepeatingDriverMBED::end
bool end()
Definition
AudioTimerMBED.h:49
audio_tools::TimeUnit
TimeUnit
Time Units.
Definition
AudioTypes.h:48
audio_tools::US
@ US
Definition
AudioTypes.h:48
audio_tools::HZ
@ HZ
Definition
AudioTypes.h:48
audio_tools::MS
@ MS
Definition
AudioTypes.h:48
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::repeating_timer_callback_t
void(* repeating_timer_callback_t)(void *obj)
Definition
AudioTimerAVR.h:7
audio_tools::TimerAlarmRepeatingDriver
TimerAlarmRepeatingDriverAVR TimerAlarmRepeatingDriver
use TimerAlarmRepeating!
Definition
AudioTimerAVR.h:94
audio_tools::timerAlarmRepeating
static TimerAlarmRepeatingDriverMBED * timerAlarmRepeating
Definition
AudioTimerMBED.h:10
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
Generated by
1.9.8