新唐MCU技术
直播中

王艳

7年用户 1259经验值
私信 关注
[问答]

采用M0518的TM2引脚做外部脉冲输入计数实现不了是为什么?

现在在M0518基础上,准备把PB2引脚用作TM2功能,以实现对外部输入脉冲的计数。

     程序是根据例程改的,例程是默认TM0的。 但程序写好后,实测了一下,当PB2引脚外部输入脉冲后,发现TDR寄存器的值一直为0?



程序如下:


void COUNTER_ini(void)
{
////////////////////////////////////////////////////
    CLK_EnableModuleClock(TMR2_MODULE);
    CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2_S_HCLK, 0);
    SYS->GPB_MFP |=SYS_GPB_MFP_PB2_TM2;
    SYS->ALT_MFP2 |=SYS_ALT_MFP2_PB2_TM2;
        
    /* Configure timer2 settings and for event counter application */
    TIMER_Open(TIMER2, TIMER_CONTINUOUS_MODE, 1);
    TIMER_SET_PRESCALE_VALUE(TIMER2, 0);
    TIMER_SET_CMP_VALUE(TIMER2,3);
    TIMER_EnableEventCounter(TIMER2, TIMER_COUNTER_FALLING_EDGE);


   TIMER_Start(TIMER2);

     while(TIMER_GetCounter(TIMER2) == 0);
}


void COUNTER_js(void)
{
   TMR2JSdata=TIMER_GetCounter(TIMER2);
}

回帖(1)

寇亦青

2023-8-22 15:25:01
是否是你的多功能引脚配置哪里冲突了,还有PB2_PWM1BK1和PB2_T2EX需要清0的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分