9 extern int64_t stop_tone_callback(alarm_id_t
id,
void *user_data);
26 static bool generate_sound_callback(repeating_timer_t *rt){
28 pt->state = !pt->state;
29 digitalWrite(pt->pin, pt->state);
33 void tone(uint8_t pinNumber,
unsigned int frequency) {
35 int delay = 1000 / frequency / 2;
36 alarm.
start(generate_sound_callback, delay, MS,
this);
43 bool operator==(
const PicoTone& other){
44 return other.pin == this->pin;
47 bool operator!=(
const PicoTone& other){
48 return other.pin != this->pin;
65 static int64_t stop_tone_callback(alarm_id_t
id,
void *user_data){
73 static void tone(uint8_t pinNumber,
unsigned int frequency,
int duration) {
74 Logger.
debug(
"ArduinoPicoTone::tone");
76 if (ptone==empyTone()){
78 pinMap().put(pinNumber, ptone);
80 ptone.tone(pinNumber, frequency);
81 add_alarm_in_ms(duration, stop_tone_callback, &ptone ,
false);
85 static void noTone(uint8_t pinNumber) {
86 Logger.
debug(
"ArduinoPicoTone::noTone");
89 if (ptone!=empyTone()){
102 return ArduinoPicoTonePinMap;
ArduinoPicoTone provides static methods for PicoTone.
Definition: PicoTone.h:63
static void noTone(uint8_t pinNumber)
static interface which supports multipe pins
Definition: PicoTone.h:85
static void tone(uint8_t pinNumber, unsigned int frequency, int duration)
static interface which supports multipe pins concurrently
Definition: PicoTone.h:73
static Map< int, PicoTone > pinMap()
for static interface
Definition: PicoTone.h:100
A simple key value map collection.
Definition: Map.h:14
virtual void debug(const char *str, const char *str1=nullptr, const char *str2=nullptr)
writes an debug message
Definition: PicoLogger.h:60
We use the TimerAlarmRepeating to generate tones.
Definition: PicoTone.h:17
Repeating Timer functions for simple scheduling of repeated execution.
Definition: PicoTimer.h:58
bool stop()
stops the execution
Definition: PicoTimer.h:84
bool start(repeating_timer_callback_t callback, uint64_t time, TimeUnit unit=MS, void *user_data=nullptr)
starts the repeated exection of the callback methods in the indicate period
Definition: PicoTimer.h:70
Pico Arduino Framework.
Definition: Arduino.cpp:26