计算 PWM 频率

发布于 2025-01-06 04:39:17 字数 131 浏览 2 评论 0原文

这应该是一个简单的公式,但我无法弄清楚。

我有一个 16mHZ AVR 芯片。

我需要运行 24kHZ 的 PWM 信号。

确定最佳预分频器的公式是什么。

我使用的是 16 位定时器。

This should be a simple formula but I can not figure it out.

I have a 16mHZ AVR Chip.

I need to run a PWM signal to be 24kHZ..

what is the formula to decide what is the best Prescaler.

I am using a 16bit timer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半岛未凉 2025-01-13 04:39:17

阅读数据表(此处例如来自 ATmega328P 数据表,16 位定时器/计数器1)以获得公式:

输出的 PWM 频率可以通过以下公式计算

fPWM = fclk_IO / (N * (1 + TOP))

N 变量表示预分频器分频器(1、8、64、256 或 1024)。

Read the datasheet (here for example from ATmega328P datasheet, 16-bit Timer/Counter1 ) to get the formula:

The PWM frequency for the output can be calculated by the following equation

fPWM = fclk_IO / (N * (1 + TOP))

The N variable represents the prescaler divider (1, 8, 64, 256, or 1024).

裸钻 2025-01-13 04:39:17

16MHz / 24KHz 给你...

(16 * 1024 * 1024) / (24 * 1024) 给你...

16777216 / 24576 给你...

682.667

因为你的预分频器只能是一个整数,并且取决于精确程度如果您需要它,您可以选择在每三个刻度时更改软件中的预分频器值。例如,每前两个刻度的预分频器为 683,每第三个刻度的预分频器为 682。

16MHz / 24KHz gives you...

(16 * 1024 * 1024) / (24 * 1024) gives you...

16777216 / 24576 gives you...

682.667

Because your prescaler can only be a whole number, and depending on how precise you need it to be, you could optionally alter the prescaler value in software on every third tick. For example, every first two ticks would have a prescaler of 683 with every third tick being 682.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文