在定时器相关的设置中,占空比(Duty Cycle)通常表示高电平在一个周期内所占的时间比例。

如果用 CCR(Capture/Compare Register,捕获 / 比较寄存器)的值除以 ARR(Auto-Reload Register,自动重装载寄存器)的值,得到的结果就是占空比。

例如,CCR 的值为 50,ARR 的值为 100,那么占空比就是 50 / 100 = 50% ,表示在一个完整的周期内,高电平的持续时间占整个周期的 50% 。

占空比在项目中可以控制电机的转速

PWM,工作模式1

pwm频率计算---PSC分配器----只除以PSC是计数的频率

设置电机的转速分成多少个挡位,挡位越多,调节也就越细腻---多少挡位由ARR来开控制,

1、比如说要设置1000个挡位,那么ARR设置位1000-1。

2、CCR设置初始值为0 

 PSC设置根据电机要求设置

3、电机一般空心杯直流电机,它的频率不能超过20KHZ就是2MhHz,

总结: 

PWM(脉冲宽度调制)的相关计算通常涉及以下几个方面:

  1. 占空比计算:占空比是指高电平在一个周期中所占的时间比例。

    占空比 = 高电平时间 / 周期时间 × 100%

  2. 频率计算:频率是指单位时间内脉冲的个数。

    频率 = 1 / 周期时间

  3. 平均电压计算(假设用于控制电源输出):

    平均电压 = 电源电压 × 占空比

以下是一个用 C 语言计算占空比和频率的示例代码:

#include <stdio.h>

// 计算占空比
float calculateDutyCycle(int highTime, int period) {
    return (float)highTime / period * 100.0;
}

// 计算频率
float calculateFrequency(int period) {
    return 1.0 / period;
}

int main() {
    int highTime = 5;  // 假设高电平时间为 5 个单位
    int period = 10;   // 假设周期为 10 个单位

    float dutyCycle = calculateDutyCycle(highTime, period);
    float frequency = calculateFrequency(period);

    printf("占空比: %.2f%%\n", dutyCycle);
    printf("频率: %.2f Hz\n", frequency);

    return 0;
}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐