|
|
将弘毅大哥的pwm库添加应用,通过定时器输出PWM波,我想要四路pwm波,分别用timer1和timer2控制,timer1输出两路pwm波什没有问题的,但是timer2的A通道控制11脚没有输出,我写的代码很简单,
- 01.#include <PWM.h>
- 02.
- 03.int pwm1 = 9; // led所连接到的引脚
- 04.int pwm2 = 10;
- 05.int pwm3 = 11;
- 06.int pwm4 = 3;
- 07.int speed1 = 33; // led的亮度,也就是占空比,范围是0-255
- 08.int speed2 = 33;
- 09.int speed3 = 33;
- 10.int speed4 = 33;
- 11.int32_t frequency = 100; // 频率 (单位是Hz)
- 12.
- 13.void setup()
- 14.{
- 15. // 初始化除了0号计时器以外的其他计时器
- 16. InitTimersSafe();
- 17.// 设置指定引脚的频率
- 18. bool success1 = SetPinFrequencySafe(pwm1, frequency);
- 19. bool success2 = SetPinFrequencySafe(pwm2, frequency);
- 20. bool success3 = SetPinFrequencySafe(pwm3, frequency);
- 21. bool success4 = SetPinFrequencySafe(pwm4, frequency);
- 22.}
- 23.
- 24.void loop()
- 25.{
- 26. pwmWrite(pwm1, speed1);
- 27. pwmWrite(pwm2, speed2);
- 28. pwmWrite(pwm3, speed3);
- 29. pwmWrite(pwm4, speed4);
- 30.delay(30);
- 31.}
复制代码
然后我就去查看弘毅大哥的cpp文件,发现他没有写入timer2A通道,我加上去之后发现整个timer2都没有pwm波输出了,百思不得其解,我就用arduino返回寄存器TCCRnX,OCRnX,的值,发现定时器1处于CTC模式,但是有pwm波输出,定时器2处于相位修正pwm输出模式,但是没有pwm输出,更是无法理解,还望各位大神指导一下,在这里附上弘毅大哥的pwm库,求指导。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|