打印
[AT32F421]

AT32F4xx_多路PWM输出动态修改占空比

[复制链接]
784|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liu510706140|  楼主 | 2021-5-12 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liu510706140 于 2021-5-12 17:47 编辑

多路PWM输出的范例没有找到修改占空比的函数,新建修改占空比的函数,多次调试测试可行。

主函数如下,程序看附件
int main(void)
{
  /* Sys Init */
  Sys_Config();

  while (1)
  {
        IWDG_ReloadCounter();//喂狗

                PWM_TMR1_Channel1(Key_count*100);
                PWM_TMR1_Channel2(Key_count*100);
                PWM_TMR1_Channel3(Key_count*100);
                PWM_TMR1_Channel4(Key_count*100);
                PWM_TMR3_Channel1(Key_count*100);
                PWM_TMR3_Channel2(Key_count*100);
                PWM_TMR3_Channel3(Key_count*100);
                PWM_TMR3_Channel4(Key_count*100);
               delay_ms(1000);//延时1秒
                Key_count++;
                if(Key_count>10)Key_count=0;
  }

}

//输出周期=1000   占空比=500-1=50%
void PWM_TMR1_Channel1(unsigned short int PulseValue)
{
        TMR1->CC1 = PulseValue;
}
void PWM_TMR1_Channel2(unsigned short int PulseValue)
{
        TMR1->CC2 = PulseValue;
}
void PWM_TMR1_Channel3(unsigned short int PulseValue)
{
        TMR1->CC3 = PulseValue;
}
void PWM_TMR1_Channel4(unsigned short int PulseValue)
{
        TMR1->CC4 = PulseValue;
}
void PWM_TMR3_Channel1(unsigned short int PulseValue)
{
        TMR3->CC1 = PulseValue;
}
void PWM_TMR3_Channel2(unsigned short int PulseValue)
{
        TMR3->CC2 = PulseValue;
}
void PWM_TMR3_Channel3(unsigned short int PulseValue)
{
        TMR3->CC3 = PulseValue;
}
void PWM_TMR3_Channel4(unsigned short int PulseValue)
{
        TMR3->CC4 = PulseValue;
}




PWM.zip

1.68 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝