在CH565使用时,需要一个IO在收到信号上升沿后中断,然后立刻用TMR2发一个PWM脉冲,
但是发现TMR2的输出有很大的延迟,测试代码如下
//使能PB3 TMR2 LDON 配置 GPIOPinRemap(ENABLE,RB_PIN_TMR2); //使能TMR2重映射功能 PB3 GPIOB_ResetBits(GPIO_Pin_3); GPIOB_ModeCfg(GPIO_Pin_3,GPIO_Slowascent_PP_8mA); while(1) { GPIOA_InverseBits(GPIO_Pin_9); // IO反转,用于模拟显示启动信号 TMR2_PWMInit( high_on_low , PWM_Times_1 ); TMR2_PWMCycleCfg(12000); // PWM周期 12000/120M = 100us TMR2_PWMActDataWidth(12000); // PWM占空比 100% TMR2_PWMActDataWidth(0); // 只发一个脉冲 mDelaymS(1); // 测试间隔1ms }
示波器显示如下
为什么TMR2的输出信号会滞后PA9那么大?试过多个周期数值,滞后正好是一个TMR2周期。
代码里没有任何延迟语句,这个延迟太大了,如何消除这个延迟?
热门产品 :
CH32L103: 32位PDUSB低功耗单片机