Arduino tone是如何创建的?

问题描述

我试图了解音调功能的工作原理。似乎我也可以在非PWM通道中使用音调功能。您能解释一下tome()函数的编写方式吗?如果使用了计时器,该如何实现?

解决方法

该功能使用计时器中断来切换输出引脚。

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

根据持续时间和频率计算,引脚会多次切换。

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