金牌会员
 
- 积分
- 1136
- 金钱
- 1136
- 注册时间
- 2015-11-29
- 在线时间
- 146 小时
|

楼主 |
发表于 2021-12-23 15:15:30
|
显示全部楼层
void TIM3_IRQHandler(void)
{
static uint32_t Extern_Pulse_Count=0;
static uint32_t Time4_Count_Num=0;
static uint32_t Extern_Pulse_Count1=0;
static uint32_t Time4_Count_Num1=0;
//if ( TIM_GetITStatus(TIM3 , TIM_IT_Update) != RESET ) //TIM4溢出
if ( TIM_GetITStatus(TIM3 , TIM_IT_CC1) != RESET ) //TIM4溢出
{
//TIM_ClearITPendingBit(TIM3 , TIM_IT_CC1); //清楚中断标志位
if(gDisplayMgrData.Cortol_Mode_State==External)
{
Time4_Count_Num=TIM_GetCounter(TIM7)+(TIM7_Flag*0xFFFF);
Count_Middle5=Count_Middle4;
Count_Middle4=Count_Middle3; //更新计数数组中的值
Count_Middle3=Count_Middle2;
Count_Middle2=Count_Middle1;
Count_Middle1=Time4_Count_Num-Extern_Pulse_Count;
//
// Count_2Add_Min1= Min_zuixiao(Count_Middle1,Count_Middle2,Count_Middle3,Count_Middle4); //最小值
// Count_2Add_Min2= Min_daoshudierxiao(Count_Middle1,Count_Middle2,Count_Middle3,Count_Middle4); //倒数第二小
//
// Count_Add_Correct_Num_2ge=Count_Middle1+Count_Middle2+Count_Middle3+Count_Middle4-Count_2Add_Min1-Count_2Add_Min2; //4个脉冲计数
Count_Zhongjianzhi_5num=Zhongjianzhi_5num(Count_Middle1,Count_Middle2,Count_Middle3,Count_Middle4,Count_Middle5);
if(TIM7_Flag){TIM7_Flag=0;}
// Q_Frequent_Set=40000/(Time4_Count_Num-Extern_Pulse_Count); //计算Q_频率
// Q_Frequent_Set=30000/(Time4_Count_Num-Extern_Pulse_Count); //计算Q_频率
// Q_Frequent_Set=40000/Count_Add_Correct_Num_2ge; //计算Q_频率
gDisplayMgrData.Q_Frequent_Set=2000000.0f/ Count_Zhongjianzhi_5num; //计算Q_频率
// Q_Frequent_Set=1440000/ Count_Zhongjianzhi_5num; //计算Q_频率
// if(gDisplayMgrData.Q_Frequent_Set<Laser_Threshold.Fre_Mininum) //Threshold
// {
// gDisplayMgrData.Q_Frequent_Set=Laser_Threshold.Fre_Mininum;
// }
// else if(gDisplayMgrData.Q_Frequent_Set>Laser_Threshold.Fre_Maximum) //Threshold
// {
// gDisplayMgrData.Q_Frequent_Set=Laser_Threshold.Fre_Maximum;
// }
if(Time4_Count_Num>0xFFFE)
{
Extern_Pulse_Count=Time4_Count_Num-0xFFFF;
}
else
{
Extern_Pulse_Count=Time4_Count_Num;
}
}
}
if ( TIM_GetITStatus(TIM3 , TIM_IT_CC2) != RESET ) //TIM4溢出
{
//TIM_ClearITPendingBit(TIM3 , TIM_IT_CC2); //清楚中断标志位
if(gDisplayMgrData.Cortol_Mode_State==External)
{
Time4_Count_Num1=TIM_GetCounter(TIM7)+(TIM7_Flag*0xFFFF);
Count_Middle51=Count_Middle41;
Count_Middle41=Count_Middle31; //更新计数数组中的值
Count_Middle31=Count_Middle21;
Count_Middle21=Count_Middle11;
Count_Middle11=Time4_Count_Num1-Extern_Pulse_Count1;
//
// Count_2Add_Min1= Min_zuixiao(Count_Middle1,Count_Middle2,Count_Middle3,Count_Middle4); //最小值
// Count_2Add_Min2= Min_daoshudierxiao(Count_Middle1,Count_Middle2,Count_Middle3,Count_Middle4); //倒数第二小
//
// Count_Add_Correct_Num_2ge=Count_Middle1+Count_Middle2+Count_Middle3+Count_Middle4-Count_2Add_Min1-Count_2Add_Min2; //4个脉冲计数
Count_Zhongjianzhi_5num1=Zhongjianzhi_5num(Count_Middle11,Count_Middle21,Count_Middle31,Count_Middle41,Count_Middle51);
if(TIM7_Flag){TIM7_Flag=0;}
// Q_Frequent_Set=40000/(Time4_Count_Num-Extern_Pulse_Count); //计算Q_频率
// Q_Frequent_Set=30000/(Time4_Count_Num-Extern_Pulse_Count); //计算Q_频率
// Q_Frequent_Set=40000/Count_Add_Correct_Num_2ge; //计算Q_频率
gDisplayMgrData.Q_Frequent_Set1=1000000/ Count_Zhongjianzhi_5num1; //计算Q_频率
// Q_Frequent_Set=1440000/ Count_Zhongjianzhi_5num; //计算Q_频率
// if(gDisplayMgrData.Q_Frequent_Set<Laser_Threshold.Fre_Mininum) //Threshold
// {
// gDisplayMgrData.Q_Frequent_Set=Laser_Threshold.Fre_Mininum;
// }
// else if(gDisplayMgrData.Q_Frequent_Set>Laser_Threshold.Fre_Maximum) //Threshold
// {
// gDisplayMgrData.Q_Frequent_Set=Laser_Threshold.Fre_Maximum;
// }
if(Time4_Count_Num1>0xFFFE)
{
Extern_Pulse_Count1=Time4_Count_Num1-0xFFFF;
}
else
{
Extern_Pulse_Count1=Time4_Count_Num1;
}
}
}
TIM_ClearITPendingBit(TIM3, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
TIM_ClearITPendingBit(TIM3, TIM_IT_CC2|TIM_IT_Update); //清除中断标志位
} |
|