打印

gd32f350 定时器16 pwm发送延时问题

[复制链接]
60|3
跳转到指定楼层
楼主
void timer16_pwm_config(uint16_t ir)
{
    timer_oc_parameter_struct timer_ocintpara;
    timer_parameter_struct timer_initpara;
          rcu_periph_clock_enable(RCU_GPIOB);
        /*ConfigurePB9(TIMER16 CH0) as alternate function*/
          gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9);
    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);
                gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_9);

    rcu_periph_clock_enable(RCU_TIMER16);
    timer_deinit(TIMER16);
//          timer_initpara.repetitioncounter = 0;
    /* TIMER16 configuration */
    timer_initpara.prescaler         = 4;
    timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;
    timer_initpara.counterdirection  = TIMER_COUNTER_UP;
    timer_initpara.period            = 250;
    timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;
    timer_initpara.repetitioncounter = 0;
    timer_init(TIMER16,&timer_initpara);

    /* CH1,CH2 and CH3 configuration in PWM mode0 */
    timer_ocintpara.ocpolarity  = TIMER_OC_POLARITY_HIGH;
    timer_ocintpara.outputstate = TIMER_CCX_ENABLE;

                timer_channel_output_config(TIMER16,TIMER_CH_0,&timer_ocintpara);
               
                timer_channel_output_pulse_value_config(TIMER16,TIMER_CH_0,ir);
    timer_channel_output_mode_config(TIMER16,TIMER_CH_0,TIMER_OC_MODE_PWM0);
    timer_channel_output_shadow_config(TIMER16,TIMER_CH_0,TIMER_OC_SHADOW_DISABLE);    //¼ÆÊýºìÍâ
                timer_update_event_disable(TIMER16);
//    timer_channel_output_fast_config(TIMER16,TIMER_CH_0, TIMER_OC_FAST_ENABLE);
    /* auto-reload preload enable */
    timer_auto_reload_shadow_enable(TIMER16);
                timer_primary_output_config(TIMER16, ENABLE);
    /* auto-reload preload enable */
    timer_enable(TIMER16);
}
求教,请问大神们gd32f350 time16动他改变pwm占空比是,启动时间怎么会这么长,示波器测起来有30ms左右,求教怎么处理!上面是配置!
沙发
| 2019-4-2 09:51 | 只看该作者
可以的啊! 真是可以的啊!

评论

l63682771 2019-4-2 09:53 回复TA
怎么讲呢? 
板凳
| 2019-4-3 08:46 | 只看该作者
官网例子一般是先开TIMER时钟,再开PWM输出通道使能,不过这个不会导致30ms那么大延迟输出 。
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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