最近在查看资料【参考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占空比;”
正好,手上有示波器,随手测量一下,发现效果不错
参考:
1.http://www.arduino.cn/thread-42007-1-1.html 【Arduino101教程】定时器的使用