Arduino 101 可以用来生成 1-1Mhz的方波

最近在查看资料【参考1】的时候,发现 101 提供了定时器输出 PWM 的功能。

“定时器输出PWM
除了作中断源使用,定时器也可以用作PWM输出,CurieTimerOne提供的pwmStart函数可以输出PWM。
在之前的章节中使用的analogWrite函数输出的PWM,周期固定,占空比可调,可用作LED调光;tone函数输出的PWM,周期不变,占空比可调,可用作无源蜂鸣器发声;而pwmStart输出的PWM周期和占空比都可调,更具灵活性,适用场合更广。
需注意的是pwmStart是重载函数,其有两种重载方式:

pwmStart(unsigned int outputPin, double dutyPercentage, unsigned int periodUsec);

pwmStart(unsigned int outputPin, int dutyRange, unsigned int periodUsec);

参数outputPin为输出PWM的引脚编号,periodUsec为每个周期的时间,单位为微秒。
而第二个参数可以为double 型,也可以为int型。当参数为double 型时,编译器会以dutyPercentage进行重载,参数以百分比形式表示PWM占空比;当参数为int型时,编译器会以dutyRange进行重载,参数以0到1023的形式表示PWM占空比;”

正好,手上有示波器,随手测量一下,发现效果不错

下面是生成的 1K 结果:
1K

2.5K 结果:
25k

25K 结果:
205k

参考:
1.http://www.arduino.cn/thread-42007-1-1.html 【Arduino101教程】定时器的使用

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注