topbandhejq 发表于 2022-2-9 18:43

GD32E303定时器的输出比较功能

在使用定时器1的CH0,toggle功能,在输出固定个数的脉冲时,脉冲个数正常,比较值也正常,但是最后一个波形异常,
if( timer_flag_get( TIMER1, TIMER_INT_FLAG_CH0) )
        {
                timer_interrupt_flag_clear( TIMER1, TIMER_INT_FLAG_CH0 );   //CH0IF = 0
                //                timer_flag_clear( TIMER1, TIMER_CH_0 );
                //------------------------
                tim_count = timer_counter_read( TIMER1 );
                tmp = tim_count + Srd4.step_delay;
                timer_channel_output_pulse_value_config( TIMER1, TIMER_CH_0, tmp );
                //------------------
                i++;   //定时器中断次数计数值

                if( i == 2 ) //说明已经输出一个完整脉冲
                {
                        i = 0;   //清零定时器中断次数计数值
#if 1
                        step_count++;

                        if( step_count >= 210 )      //超出210异常
                        {
                                step_count = 0;
                                timer_channel_output_state_config( TIMER1, TIMER_CH_0, TIMER_CCX_DISABLE );   //CH0EN = 0
                                timer_flag_clear( TIMER1, TIMER_CH_0 );                                                        //CH0IF = 0
                                //                                timer_interrupt_flag_clear( TIMER1, TIMER_INT_FLAG_CH0 );
                                timer_interrupt_disable( TIMER1, TIMER_INT_CH0 );   //CH0IE = 0
                        }

#endif
}
不知大家有没有遇到过

topbandhejq 发表于 2022-2-9 18:45

连续输出脉冲时,波形正常,输出固定个数的脉冲就不正常了,

呐咯密密 发表于 2022-2-10 15:14

空闲电平的问题,你空闲电平是低电平,然后你最后一个方波的最后一个沿是上升沿,这就导致最后一个波形输出后MCU会将高电平拉低

drer 发表于 2022-3-1 20:30

默认是什么点评呢

qcliu 发表于 2022-3-1 20:37

定义成什么模式了呢

coshi 发表于 2022-3-1 20:50

有固定模式 空闲的电平

kxsi 发表于 2022-3-1 21:00

加长间隔时间可以避免吗

wiba 发表于 2022-3-1 21:10

那么如何避免这个尖峰的出现呢
页: [1]
查看完整版本: GD32E303定时器的输出比较功能