这是我的中断采集两次数值函数,理论没问题,就是lcd显示不正确。顺便lcd显示是WHILE显示还是要if的判断句
u8 T2;
u8 flag;
u8 capture_number; //êäèë2¶»ñ×′ì¬
u32 TIM5CH1_CAPTURE_VAL1;
u32 TIM5CH1_CAPTURE_VAL2;//êäèë2¶»ñÖμ(TIM2/TIM5êÇ32λ)
u32 pinlv;
u32 fuck;
u8 TIM5CH1_CAPTURE_STA;
void TIM1_IRQHandler(void)
{
if (TIM5CH1_CAPTURE_STA)
{
TIM5CH1_CAPTURE_STA=0;
if(capture_number==0 )
{
TIM5CH1_CAPTURE_VAL1 = TIM5->CNT;
capture_number=1;
}
else if(capture_number==1)
{
TIM5CH1_CAPTURE_VAL2 = TIM5->CNT;
}
if(TIM5CH1_CAPTURE_VAL1>TIM5CH1_CAPTURE_VAL2)
{
pinlv=TIM5CH1_CAPTURE_VAL2-TIM5CH1_CAPTURE_VAL1-1;
}
else
{
pinlv=TIM5CH1_CAPTURE_VAL2-TIM5CH1_CAPTURE_VAL1-1+0xffff;
}
fuck=(u32)1000000/ pinlv;
}
capture_number=0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>