|
版主,谢谢你的帮助。
对捕获的配置如下,
TIM3_ICInit(TIM3_CHANNEL_1, TIM3_ICPOLARITY_RISING, TIM3_ICSELECTION_DIRECTTI, TIM3_ICPSC_DIV8, 0); //8个事件触发一次捕获中断,Channel1,上升沿。
TIM3_ITConfig(TIM3_IT_CC1, ENABLE); //捕获功能使能。
TIM3_Cmd(ENABLE); //使能TIM3计数
key=0;
while(1)
{
;
}
中断部分程序如下:
@near @interrupt @svlreg void TIM3_CAP_COM_IRQHandler (void)
{
if ( TIM3_GetFlagStatus(TIM3_FLAG_CC1) == SET )
{
switch (key)
{
case 0: firstcapture = TIM3_GetCapture1();
key=1;
break;
case 1: lastcapture = TIM3_GetCapture1();
key=2;
break;
default:TIM3_ITConfig(TIM3_IT_CC1, DISABLE);
break;
}
TIM3_ClearITPendingBit(TIM3_IT_CC1);
TIM3_ClearFlag(TIM3_FLAG_CC1);
}
return;
}
用PD2脚捕获,捕获的话应该不需要对IO配置的吧。
另外PD2最高输出频率为2M,不知道对输入有没有限制呢。
O3 = Fast/slow programmability with slow as default state after reset
PD2特性。
谢谢。 |
|