现在在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);
} |