×

使用TCC定时器/计数器的高速PWM

消耗积分:0 | 格式:zip | 大小:0.05 MB | 2023-01-04

欲望都市

分享资料个

描述

使用 TCC 定时器/计数器的高速 PWM

在带有 Cortex-M0 (ATSAMD21) 的 Arduino 上,您的 PWM 控制在频率和速度方面有更多选择,而不仅仅是 AnalogWrite() 函数。

  • 为什么不使用 Tone() 函数?:此功能不支持您更改PWM占空比。
  • 为什么不使用 AnalogWrite() 函数?:此功能只支持一个频率~490Hz
  • 为什么不使用 setPwmFrequency()函数:这会更改时钟预分频器,可能会影响其他 Arduino 函数的计时。

我花了一些精力浏览论坛和演示才弄明白,所以我喜欢分享。

困难在于找出正确的寄存器设置,使用数据表,第 31 章 - TCC 定时器/计数器,具体 31.6.2 用于设置 PWM 计数器 - 使用 GCLKC4(arduino 未使用)并将它们连接到正确的 TCC,和正确的 IO 引脚。

代码是自解释的,并使用双斜率 PWM 模式为低速(几赫兹)和高速(>>500Khz)创建无毛刺 PWM 信号。

您可以通过将压电扬声器连接到 IO(用于可听频率)来进行简单测试。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !