极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9490|回复: 0

弘毅大哥的库定时器2A通道输出少一路pwm波

[复制链接]
发表于 2015-3-18 20:51:34 | 显示全部楼层 |阅读模式
将弘毅大哥的pwm库添加应用,通过定时器输出PWM波,我想要四路pwm波,分别用timer1和timer2控制,timer1输出两路pwm波什没有问题的,但是timer2的A通道控制11脚没有输出,我写的代码很简单,
  1. 01.#include <PWM.h>

  2. 02.

  3. 03.int pwm1 = 9;  // led所连接到的引脚

  4. 04.int pwm2 = 10;

  5. 05.int pwm3 = 11;

  6. 06.int pwm4 = 3;

  7. 07.int speed1 = 33;         // led的亮度,也就是占空比,范围是0-255

  8. 08.int speed2 = 33;

  9. 09.int speed3 = 33;

  10. 10.int speed4 = 33;

  11. 11.int32_t frequency = 100; // 频率 (单位是Hz)

  12. 12.

  13. 13.void setup()

  14. 14.{

  15. 15. // 初始化除了0号计时器以外的其他计时器

  16. 16. InitTimersSafe();

  17. 17.// 设置指定引脚的频率

  18. 18. bool success1 = SetPinFrequencySafe(pwm1, frequency);

  19. 19. bool success2 = SetPinFrequencySafe(pwm2, frequency);

  20. 20. bool success3 = SetPinFrequencySafe(pwm3, frequency);

  21. 21. bool success4 = SetPinFrequencySafe(pwm4, frequency);

  22. 22.}

  23. 23.

  24. 24.void loop()

  25. 25.{

  26. 26. pwmWrite(pwm1, speed1);

  27. 27. pwmWrite(pwm2, speed2);

  28. 28. pwmWrite(pwm3, speed3);

  29. 29. pwmWrite(pwm4, speed4);

  30. 30.delay(30);      

  31. 31.}

复制代码

然后我就去查看弘毅大哥的cpp文件,发现他没有写入timer2A通道,我加上去之后发现整个timer2都没有pwm波输出了,百思不得其解,我就用arduino返回寄存器TCCRnX,OCRnX,的值,发现定时器1处于CTC模式,但是有pwm波输出,定时器2处于相位修正pwm输出模式,但是没有pwm输出,更是无法理解,还望各位大神指导一下,在这里附上弘毅大哥的pwm库,求指导。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 03:34 , Processed in 0.097974 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表