void TIM3_IRQHandler(void)
{
/* TIM2 CCR1 Register define the MSB of the captured value
TIM3 CCR1 Register define the LSB of the captured value */
if (kk == 0)
{
LSB = TIM_GetCapture1(TIM3);
MSB1 = TIM_GetCapture1(TIM2);
kk = 1;
}
else
{
TIM_ClearITPendingBit(TIM3, TIM_IT_CC1);
LSB = TIM_GetCapture1(TIM3);
MSB2 = TIM_GetCapture1(TIM2);
if (MSB1 > MSB2)
{
MSB = 0xFFFF - ((MSB1 - MSB2)) - 1;
}
else
{
MSB = (MSB2 - MSB1) - 1;
}
kk = 0;
Freq[3] = 1.0*(TIMxCLK_Freq / ((MSB * 65535.) + LSB));
// Freq[ii] = 1.0*(TIMxCLK_Freq / ((MSB * 65535.) + LSB));
// ii++;
// if(ii == 5){
// ii = 0;
// for(kk=0;kk<5;kk++){
// for(jj=kk;jj<4;jj++){
// if(Freq[jj] < Freq[jj+1]){
// a = Freq[jj];
// Freq[jj] = Freq[jj+1];
// Freq[jj+1] = a;
// }
// }
// }
FrequencyA = Freq[3];
FrequencyB = FrequencyA;
if( FrequencyB < 31063.){
FrequencyB = FrequencyA;
}
// }
}
} |