Arduino tone() 是如何创建的?

How Arduino tone() was created?

我正在尝试了解音调功能的工作原理。好像我也可以在非 PWM 通道中使用音调功能。你能解释一下 tome() 函数是如何编写的吗?如果使用了计时器,那么它是如何实现的?

该函数使用定时器中断来切换输出引脚。

计时器是使用频率参数设置的。在toneBegin函数中

引脚切换次数根据持续时间和频率计算得出。

https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/Tone.cpp