打印

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

[复制链接]
1226|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
l63682771|  楼主 | 2019-4-2 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
怎么讲呢? 
板凳
lvben5d| | 2019-4-3 08:46 | 只看该作者
官网例子一般是先开TIMER时钟,再开PWM输出通道使能,不过这个不会导致30ms那么大延迟输出 。

使用特权

评论回复
地板
Luohaiwen| | 2020-6-17 23:39 | 只看该作者
配置好了,更改这句的参数就可以了, timer_channel_output_pulse_value_config(TIMER16,TIMER_CH_0,ir);

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝