中级会员
 
- 积分
- 230
- 金钱
- 230
- 注册时间
- 2015-6-4
- 在线时间
- 5 小时
|

楼主 |
发表于 2015-7-25 19:57:35
|
显示全部楼层
回复【16楼】joe_knight:
---------------------------------
void TIM5_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_ClearITPendingBit(TIM5,TIM_IT_Update);
TIM_TimeBaseInitStructure.TIM_ClockDivision=0;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period=1600;
TIM_TimeBaseInitStructure.TIM_Prescaler=71;
TIM_TimeBaseInit(TIM5,&TIM_TimeBaseInitStructure);
TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);
//TIM_Cmd(TIM5,ENABLE);
}//TIM5作为高速脉冲计数
void TIM2_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
TIM_TimeBaseInitStructure.TIM_ClockDivision=0;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Period=50-1;
TIM_TimeBaseInitStructure.TIM_Prescaler=7199;//定时5ms
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2,ENABLE);
}
void TIM2_IRQHandler(void)
{
u16 M1=0,M2=0;
TIM_Cmd(TIM3,ENABLE);
TIM_Cmd(TIM5,ENABLE);
M1=TIM3->CNT;
M2=TIM5->CNT;
n=60*(1000000)*M1/(M2*4*400);
TIM_Cmd(TIM3,DISABLE);
TIM_Cmd(TIM5,DISABLE);
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}
这样有什么问题吗?为什么测得的n一直是0呢?是按照那个思路啊?哪里不对啊? |
|